From 1886099d2304012423bab73b0d75c0c318ad299b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sun, 14 Dec 2025 15:25:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(Characters):=20=E4=BF=AE=E5=A4=8DBear?= =?UTF-8?q?=E5=86=B2=E5=88=BA=E6=97=B6=E6=9C=AA=E6=A3=80=E6=9F=A5boss?= =?UTF-8?q?=E6=9C=89=E6=95=88=E6=80=A7=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复Bear.gd中sprint函数未检查currentFocusedBoss是否有效的问题,避免潜在崩溃 调整TickTool.gd中until方法的frame调用方式 修改Wave.gd测试环境下的初始波次配置 --- scripts/Contents/Characters/Bear.gd | 4 ++-- scripts/Contents/Wave.gd | 4 ++-- scripts/Tools/TickTool.gd | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/Contents/Characters/Bear.gd b/scripts/Contents/Characters/Bear.gd index f8015aa..888e839 100644 --- a/scripts/Contents/Characters/Bear.gd +++ b/scripts/Contents/Characters/Bear.gd @@ -122,8 +122,8 @@ func attack(type): return false return true func sprint(): - var dir = sign((currentFocusedBoss.position - position).x) - velocity = Vector2(dir, 0) + if is_instance_valid(currentFocusedBoss): + velocity = Vector2(sign((currentFocusedBoss.position - position).x), 0) func sprintAi(): velocity.x *= 1.2 return abs(velocity.x) >= 1000000 diff --git a/scripts/Contents/Wave.gd b/scripts/Contents/Wave.gd index ae5f48c..4635466 100644 --- a/scripts/Contents/Wave.gd +++ b/scripts/Contents/Wave.gd @@ -22,7 +22,7 @@ func duplicate() -> Wave: wave.per = per return wave -static var current: int = startWith(1) if WorldManager.isRelease() else startWith(5) +static var current: int = startWith(1) if WorldManager.isRelease() else startWith(1) static var WAVE_NORMAL = [ Wave.create("Hen", 1, 3, false, 0, INF, 1), Wave.create("Cat", 1, 3, false, 0, INF, 1), @@ -47,7 +47,7 @@ static var WAVE_TESTBOSS_CHICK = [ Wave.create("Chick", 0, 0, true, 0, INF, 10), ] static var WAVE_EMPTY = [] -static var data = WAVE_NORMAL if WorldManager.isRelease() else WAVE_TESTBOSS_ALL +static var data = WAVE_NORMAL if WorldManager.isRelease() else WAVE_TESTBOSS_BEAR static func create( entity_: String, diff --git a/scripts/Tools/TickTool.gd b/scripts/Tools/TickTool.gd index f19647b..e7a4a59 100644 --- a/scripts/Tools/TickTool.gd +++ b/scripts/Tools/TickTool.gd @@ -7,7 +7,7 @@ static func frame(count: int = 1): await WorldManager.tree.physics_frame static func until(predicate: Callable): while not predicate.call(): - await frame() + await frame.unbind(1).call(0) static func modifyAnimationKey(animator: AnimationPlayer, name: String, track: NodePath, trackType: Animation.TrackType, time: float, value: Variant): var animation = animator.get_animation(name) var trackIdx = animation.find_track(track, trackType)