1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 23:11:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Statemachine/CycleTimer.gd
T
fallingshrimp cc4b91797d feat(子弹系统): 添加QKSword子弹及其处理逻辑
实现QKSword子弹类型,包括子弹行为、生成逻辑和命中效果
- 新增QKSwordBullet类,实现追踪目标功能
- 新增QKSwordHandler处理命中后的子弹生成
- 修改ParryBall使其命中时生成QKSword子弹
- 调整CycleTimer的子弹偏移计算
- 为BulletBase添加afterSpawn回调
2026-03-18 22:39:44 +08:00

27 lines
771 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]
var offset = Vector2.from_angle(periodPercent(index))
offset.y *= 0.25
bullet.position = bullet.launcher.position + offset * distance
bullet.scale = Vector2.ONE * (1 + offset.y)
func host(bullet: BulletBase):
bullets.append(bullet)