1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 15:01:53 +08:00

feat(子弹): 为弓箭子弹添加蓄力效果和粒子特效

添加蓄力等待时间和粒子特效系统,使弓箭在发射前有蓄力效果,并在发射时显示火焰粒子特效。修改了Bow.gd和Arrow.gd以支持蓄力时间参数,并更新Arrow.tscn添加新的粒子系统节点。
This commit is contained in:
2025-11-18 22:19:56 +08:00
parent f8f76d5725
commit f9601c4d13
3 changed files with 53 additions and 3 deletions
+15 -1
View File
@@ -1,9 +1,23 @@
extends BulletBase
class_name Arrow
var atk: float = 0
@onready var trail: GPUParticles2D = $%trail
var atk: float = 0
var waitTime: float = 0
func register():
trail.emitting = false
hitbox.disabled = true
func ai():
if timeLived() < waitTime:
PresetBulletAI.lockLauncher(self, launcher, true)
rotation = position.angle_to_point(get_global_mouse_position())
position += Vector2.from_angle(rotation) * 200
return
else:
trail.emitting = true
hitbox.disabled = false
speed = (1 - lifeDistancePercent()) * initialSpeed
damage = speed * atk
PresetBulletAI.forward(self, rotation)
+3 -1
View File
@@ -3,9 +3,9 @@ class_name Bow
var count: int = 0
var atk: float = 0
var waitTime: float = 1000
func spawn():
await TickTool.millseconds(1000)
var startAngle = rotation - deg_to_rad(count * 10.0 / 2)
for c in count:
for i in BulletBase.generate(
@@ -16,6 +16,8 @@ func spawn():
):
var bullet: Arrow = i
bullet.atk = atk
bullet.waitTime = waitTime
await TickTool.millseconds(waitTime)
tryDestroy()
func ai():
PresetBulletAI.lockLauncher(self, launcher, true)