Archived
1
0
Fork 0
This repository has been archived on 2026-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
Danmaku/client/danmaku!/Board/bullet_path_manager.gd

23 lines
705 B
GDScript

extends Node2D
var bullet_intraframe_mov_delta := 0.0
var bullets = []
func _ready() -> void:
child_exiting_tree.connect(_on_child_exiting_tree)
func _process(_delta: float) -> void:
bullet_intraframe_mov_delta = LocalTimer.delta_counter / Globals.TICK_TIME
for bullet in bullets:
var prev_pos = bullet.get_current_pos(LocalTimer.predicted_tick)
var next_pos = bullet.get_current_pos(LocalTimer.predicted_tick + 1)
var interpolated_pos = prev_pos.lerp(next_pos, bullet_intraframe_mov_delta)
bullet.position = interpolated_pos
if bullet.beyond_kill_boundary(LocalTimer.predicted_tick):
bullet.queue_free()
func _on_child_exiting_tree(node: DanmakuBullet):
bullets.erase(node)