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!/BulletManager.gd

22 lines
617 B
GDScript

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