From b7f7c2a752631729535087dc3d0a0f3fa368acb2 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Sun, 6 Jul 2025 23:07:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=99=9E=E5=AD=90=E5=81=B7?= =?UTF-8?q?=E7=AA=A5=E8=BF=90=E9=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scene/ground/camera/camera_focus_marker.gd | 5 ++++- scene/ground/scene/c02/s08_瞎子卧室.gd | 10 ++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scene/ground/camera/camera_focus_marker.gd b/scene/ground/camera/camera_focus_marker.gd index 4ccd5c18..ef06db3d 100644 --- a/scene/ground/camera/camera_focus_marker.gd +++ b/scene/ground/camera/camera_focus_marker.gd @@ -17,9 +17,12 @@ var shake_ignore_boundary := false func _ready() -> void: + reset_speed() if not focusing_node: push_error("Focusing node not found") +func reset_speed() -> void: + speed = 2.0 func shake_camera(strength := 6.0, recovery_speed := 2.0, ignore_boundary := true): shake_strength = strength @@ -68,7 +71,7 @@ func _physics_process(delta: float) -> void: # handle shake if shake_strength > 0.0: # 让 shake_strength 逐帧衰减 - shake_recovery_speed = min(0.1, shake_recovery_speed) + shake_recovery_speed = max(0.1, shake_recovery_speed) shake_strength = lerpf(shake_strength, 0.0, shake_recovery_speed * delta) # [-shake_strength, +shake_strength] 范围内的同时,尽可能偏离中心 # 在 0 – 2π 之间随机一个方向,在 _last_shake_angle 的对角范围 diff --git a/scene/ground/scene/c02/s08_瞎子卧室.gd b/scene/ground/scene/c02/s08_瞎子卧室.gd index 35a346fc..af41f665 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.gd +++ b/scene/ground/scene/c02/s08_瞎子卧室.gd @@ -168,14 +168,16 @@ func look_back_hole(): var laizi = $"../DeployLayer/癞子偷窥" laizi.visible = true var camera = SceneManager.get_camera_marker() as CameraFocusMarker + # 保证 camera 可以紧跟着运行 + camera.speed = 100.0 # 去掉洞口中间遮挡 var occluder = $"../AmbientLayer/下洞口Occluder/LightOccluder2DMid" var tween = create_tween() tween.tween_interval(0.4) # 镜头右侧 limit 设置到 room_camera_r_limit + 100 - tween.tween_property(camera, "limit_right", room_camera_r_limit + 100, 1.0) - tween.parallel().tween_property(camera, "zoom_ratio", 1.1, 1.0) - tween.tween_callback(func(): occluder.visible = false) + tween.tween_property(camera, "zoom_ratio", 1.1, 1.0) + tween.parallel().tween_property(camera, "limit_right", room_camera_r_limit + 100, 1.5) + tween.tween_callback(occluder.hide) tween.tween_interval(0.5) tween.tween_callback($"Sfx癞子对视惊吓".play) tween.tween_interval(0.5) @@ -183,7 +185,7 @@ func look_back_hole(): tween.tween_property(darker_light, "energy", 1.0, 3.0) tween.tween_property(camera, "limit_right", room_camera_r_limit, 1.0) tween.parallel().tween_property(camera, "zoom_ratio", 1.0, 1.0) - + tween.tween_callback(camera.reset_speed) func _on_shocked(): SceneManager.pop_debug_dialog_info("音效", "惊吓")