mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-30 16:01:53 +08:00
24 lines
684 B
GDScript
24 lines
684 B
GDScript
|
|
class_name CycleTimer
|
||
|
|
|
||
|
|
@export var period: float = 1
|
||
|
|
|
||
|
|
var startTime: float = 0
|
||
|
|
var running: bool = false
|
||
|
|
var distance: float = 200
|
||
|
|
var bullets: Array[BulletBase] = []
|
||
|
|
|
||
|
|
func start():
|
||
|
|
startTime = Time.get_ticks_msec()
|
||
|
|
running = true
|
||
|
|
func lifetime():
|
||
|
|
return Time.get_ticks_msec() - startTime
|
||
|
|
func periodPercent(count: int):
|
||
|
|
return lifetime() / period * deg_to_rad(360) - deg_to_rad(360.0 * count / len(bullets))
|
||
|
|
func apply():
|
||
|
|
bullets = bullets.filter(is_instance_valid)
|
||
|
|
for index in len(bullets):
|
||
|
|
var bullet = bullets[index]
|
||
|
|
bullet.position = bullet.launcher.position + Vector2.from_angle(periodPercent(index)) * distance
|
||
|
|
func host(bullet: BulletBase):
|
||
|
|
bullets.append(bullet)
|