23 lines
705 B
GDScript
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)
|