mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
fix(LGBTBullet): 修复子弹追踪逻辑并添加丢失目标检测
添加lastDistance和missedTarget变量来检测子弹是否错过目标 当子弹与目标距离增大时标记为missedTarget停止追踪
This commit is contained in:
@@ -4,14 +4,21 @@ class_name LGBTBullet
|
|||||||
var tracer: EntityBase = null
|
var tracer: EntityBase = null
|
||||||
var maxTraceTime: float = 0
|
var maxTraceTime: float = 0
|
||||||
var tracePower: float = 0
|
var tracePower: float = 0
|
||||||
|
var lastDistance: float = INF
|
||||||
|
var missedTarget: bool = false
|
||||||
|
|
||||||
func register():
|
func register():
|
||||||
speed = 1
|
speed = 1
|
||||||
func ai():
|
func ai():
|
||||||
speed *= 1.05
|
speed *= 1.05
|
||||||
speed = clamp(speed, 0, 20)
|
speed = clamp(speed, 0, 20)
|
||||||
if is_instance_valid(tracer) and timeLived() < maxTraceTime:
|
if !missedTarget and is_instance_valid(tracer) and timeLived() < maxTraceTime:
|
||||||
PresetBulletAI.trace(self, tracer.getTrackingAnchor(), tracePower)
|
PresetBulletAI.trace(self, tracer.getTrackingAnchor(), tracePower)
|
||||||
PresetBulletAI.forward(self, rotation)
|
PresetBulletAI.forward(self, rotation)
|
||||||
|
var currentDistance = position.distance_to(tracer.getTrackingAnchor())
|
||||||
|
if currentDistance > lastDistance:
|
||||||
|
missedTarget = true
|
||||||
|
else:
|
||||||
|
lastDistance = currentDistance
|
||||||
func destroy(_b):
|
func destroy(_b):
|
||||||
EffectController.create(ComponentManager.getEffect("LGBTBoom"), position).shot()
|
EffectController.create(ComponentManager.getEffect("LGBTBoom"), position).shot()
|
||||||
|
|||||||
Reference in New Issue
Block a user