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:
@@ -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,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)
|
||||
|
||||
Reference in New Issue
Block a user