scanlines, sounds, bumper walls, score keep, control legend, timer

This commit is contained in:
2026-05-29 16:37:26 +03:00
parent 2e2b70e030
commit 33ec51625c
10 changed files with 274 additions and 134 deletions
+14 -8
View File
@@ -134,13 +134,14 @@ func _update_tail(delta: float) -> void:
var flat_speed: float = Vector2(_player.velocity.x, _player.velocity.z).length()
var wag_strength: float = lerpf(DP.f("tail_wag_idle"), 0.0, clampf(flat_speed / 3.0, 0.0, 1.0))
var wag_freq: float = DP.f("tail_wag_freq")
var time: float = Time.get_ticks_msec() / 1000.0
var basis_x: Vector3 = _bull.global_transform.basis.x
for i in range(1, _tail_world.size()):
var vel: Vector3 = (_tail_world[i] - _tail_prev[i]) * damping
_tail_prev[i] = _tail_world[i]
var wag := _bull.global_transform.basis.x \
* sin(time * DP.f("tail_wag_freq") + i * 0.5) * wag_strength
var wag := basis_x * sin(time * wag_freq + i * 0.5) * wag_strength
_tail_world[i] = _tail_world[i] + vel + gravity * (delta * delta) + wag * delta
for i in range(1, _tail_world.size()):
@@ -167,16 +168,21 @@ func _apply_tail() -> void:
if _tail_world.is_empty():
return
for i in range(_tail_world.size()):
var n := _tail_world.size()
var local_pos: Array[Vector3] = []
local_pos.resize(n)
for i in n:
local_pos[i] = _skeleton.to_local(_tail_world[i])
for i in n:
var idx: int = _tail_idx[i]
var pos_skel: Vector3 = _skeleton.to_local(_tail_world[i])
var pos_skel: Vector3 = local_pos[i]
var point_dir_skel: Vector3
if i < _tail_world.size() - 1:
point_dir_skel = (_skeleton.to_local(_tail_world[i + 1]) - pos_skel).normalized()
if i < n - 1:
point_dir_skel = (local_pos[i + 1] - pos_skel).normalized()
else:
var prev_skel: Vector3 = _skeleton.to_local(_tail_world[i - 1])
point_dir_skel = (pos_skel - prev_skel).normalized()
point_dir_skel = (pos_skel - local_pos[i - 1]).normalized()
var rest_dir: Vector3 = _tail_rest_dir[i]
var rest_t: Transform3D = _skeleton.get_bone_global_rest(idx)