From 03dd736f4fe867724b08a29054e8423d563eb298 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Thu, 7 Aug 2025 18:28:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=96=E5=AD=90=E6=B8=B8=E6=88=8F=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/animation/entity_sprite_frames.tres | 76 +++ scene/character/main_player.tscn | 2 + scene/character/player_animation_config.gd | 4 +- scene/ground/scene/c03/s07_屠宰间.gd | 13 +- scene/ground/scene/c03/s07_屠宰间.tscn | 84 +++- scene/ground/scene/c03/s10_胖子游戏1.gd | 72 ++- scene/ground/scene/c03/s10_胖子游戏1.tscn | 446 +++++++++++++++--- scene/ground/scene/c03/s11_胖子游戏2.gd | 1 + scene/ground/scene/c03/s11_胖子游戏2.tscn | 1 + scene/ground/scene/c03/s12_胖子游戏3.gd | 13 +- scene/ground/scene/c03/s12_胖子游戏3.tscn | 47 +- scene/ground/script/c03/s07_closeup绞肉机.gd | 4 +- .../script/c03/s07_event胖子游戏结束演出.gd | 6 +- scene/ground/script/c03/胖子游戏棺材怪.gd | 2 +- 14 files changed, 665 insertions(+), 106 deletions(-) diff --git a/config/animation/entity_sprite_frames.tres b/config/animation/entity_sprite_frames.tres index d7b755cd..12ace793 100644 --- a/config/animation/entity_sprite_frames.tres +++ b/config/animation/entity_sprite_frames.tres @@ -3346,6 +3346,65 @@ animations = [{ "speed": 5.0 }, { "frames": [{ +"duration": 3.0, +"texture": ExtResource("561_absvs") +}, { +"duration": 3.0, +"texture": ExtResource("562_d128g") +}, { +"duration": 3.0, +"texture": ExtResource("561_absvs") +}, { +"duration": 3.0, +"texture": ExtResource("563_3fx5s") +}, { +"duration": 3.0, +"texture": ExtResource("564_l13jo") +}, { +"duration": 1.0, +"texture": ExtResource("565_5fahj") +}, { +"duration": 1.0, +"texture": ExtResource("566_y2gjg") +}, { +"duration": 1.0, +"texture": ExtResource("567_ikcep") +}, { +"duration": 1.0, +"texture": ExtResource("568_8vhco") +}, { +"duration": 3.0, +"texture": ExtResource("569_2qsjy") +}, { +"duration": 3.0, +"texture": ExtResource("570_wpe64") +}, { +"duration": 3.0, +"texture": ExtResource("571_88ymt") +}, { +"duration": 1.0, +"texture": ExtResource("572_tnlrb") +}, { +"duration": 1.0, +"texture": ExtResource("573_f02eb") +}, { +"duration": 1.0, +"texture": ExtResource("574_fhnjb") +}, { +"duration": 1.0, +"texture": ExtResource("575_2byqq") +}, { +"duration": 1.0, +"texture": ExtResource("576_5rkx7") +}, { +"duration": 1.0, +"texture": ExtResource("577_y1k3y") +}], +"loop": false, +"name": &"c02_吕萍_背靠起身_屠宰间", +"speed": 5.0 +}, { +"frames": [{ "duration": 1.0, "texture": ExtResource("578_l4y1k") }, { @@ -4773,6 +4832,23 @@ animations = [{ "speed": 5.0 }, { "frames": [{ +"duration": 8.0, +"texture": ExtResource("1009_3fbfp") +}, { +"duration": 3.0, +"texture": ExtResource("1010_ek4fg") +}, { +"duration": 1.0, +"texture": ExtResource("1019_3cpbr") +}, { +"duration": 1.0, +"texture": ExtResource("1020_4minp") +}], +"loop": false, +"name": &"c03_胖子游戏_爬起来", +"speed": 6.0 +}, { +"frames": [{ "duration": 1.0, "texture": ExtResource("1011_mi2dh") }, { diff --git a/scene/character/main_player.tscn b/scene/character/main_player.tscn index 4a08602f..8c6adfbe 100644 --- a/scene/character/main_player.tscn +++ b/scene/character/main_player.tscn @@ -47,6 +47,7 @@ metadata/_edit_vertical_guides_ = [-15.0, -3.0] position = Vector2(0, -60) energy = 1.2 range_layer_min = -10 +range_layer_max = 2 range_item_cull_mask = 15 shadow_enabled = true texture = SubResource("GradientTexture2D_gk3xo") @@ -57,6 +58,7 @@ height = 10.0 position = Vector2(0, -60) energy = 0.0 range_layer_min = -10 +range_layer_max = 2 range_item_cull_mask = 15 shadow_enabled = true texture = SubResource("GradientTexture2D_e2i85") diff --git a/scene/character/player_animation_config.gd b/scene/character/player_animation_config.gd index 6cb7af5f..ae287b0e 100644 --- a/scene/character/player_animation_config.gd +++ b/scene/character/player_animation_config.gd @@ -54,6 +54,7 @@ var ANIMATION_CONFIG = { # 第二章井边站起来 19: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身", &""], 20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""], + 21: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身_屠宰间", &""], }, "吕萍爬行": { @@ -196,7 +197,7 @@ var ANIMATION_CONFIG = { "walk_footstep": 0.5, "run_footstep": 0.5, "os_height": 130.0, - "light_height": 70.0, + "light_height": 50.0, # 如果使用 auto,就会自动以最低点为基准 # "auto_foot_offset": true, "foot_offset": Vector2(0, -51.0), @@ -208,6 +209,7 @@ var ANIMATION_CONFIG = { 6: [&"c03_胖子游戏_洞里爬出来", Vector2.ONE, Vector2(-70, -44.5)], 7: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_胖子对半砍"], 8: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_吃东西"], + 9: [&"", Vector2.ONE, Vector2(0, -108.0), &"", &"c03_胖子游戏_爬起来"], }, "小小小蝶": { diff --git a/scene/ground/scene/c03/s07_屠宰间.gd b/scene/ground/scene/c03/s07_屠宰间.gd index f2c31960..b20d82f3 100644 --- a/scene/ground/scene/c03/s07_屠宰间.gd +++ b/scene/ground/scene/c03/s07_屠宰间.gd @@ -40,15 +40,18 @@ func _on_grinder_exited(_arg) -> void: func _transport_to_the_fatty_story() -> void: + _setup_monster_chopping() SceneManager.get_camera_marker().shake_camera(3.0) SceneManager.lock_player() - await Util.wait(1.0) - SceneManager.dizzy_effect(3.0) - SceneManager.player_action(17, true) - Util.timer(1.0, _setup_monster_chopping) - await SceneManager.get_player().animation_finished await Util.wait(2.0) + SceneManager.dizzy_effect(3.5) + SceneManager.player_action(17, true) + play("fatty_flash") + SceneManager.pop_debug_dialog_info("音效", "胖子闪烁") + await Util.wait(3.0) SceneManager.unlock_player() + SceneManager.black_transition(1.5, 3.0) + await Util.wait(3.0) SceneManager.get_ground_loader().transition_to_scene("c03_s10", "left") diff --git a/scene/ground/scene/c03/s07_屠宰间.tscn b/scene/ground/scene/c03/s07_屠宰间.tscn index 1436e40f..496949c5 100644 --- a/scene/ground/scene/c03/s07_屠宰间.tscn +++ b/scene/ground/scene/c03/s07_屠宰间.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=30 format=3 uid="uid://c67732f2we13j"] +[gd_scene load_steps=35 format=3 uid="uid://c67732f2we13j"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_oxs1j"] [ext_resource type="Script" uid="uid://dh5vxhnfnua3q" path="res://scene/ground/scene/c03/s07_屠宰间.gd" id="2_oxs1j"] @@ -28,8 +28,75 @@ [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="21_qeidq"] [ext_resource type="Script" uid="uid://deysfedtyjlig" path="res://scene/ground/script/c03/s07_event胖子游戏结束演出.gd" id="22_fuomw"] [ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="23_u2kpr"] +[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="28_2kdsp"] + +[sub_resource type="Animation" id="Animation_2kdsp"] +resource_name = "fatty_flash" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("MainPlayer/Light胖子闪烁:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.266667, 0.366667, 0.433333, 0.633333, 0.7, 0.766667, 0.833333, 0.9), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 1), Color(0.935194, 0.935194, 0.935194, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MainPlayer/胖子:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2, 0.366667, 0.433333, 0.633333, 0.7, 0.966667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.494118), Color(1, 1, 1, 0.494118), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.494118), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_akd3f"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("MainPlayer/Light胖子闪烁:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0, 0, 0, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MainPlayer/胖子:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] +_data = { +&"RESET": SubResource("Animation_akd3f"), +&"fatty_flash": SubResource("Animation_2kdsp") +} + +[sub_resource type="Gradient" id="Gradient_2kdsp"] +offsets = PackedFloat32Array(1) +colors = PackedColorArray(1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_akd3f"] +gradient = SubResource("Gradient_2kdsp") +height = 128 [node name="S07" type="Node2D"] metadata/_edit_horizontal_guides_ = [-627.0] @@ -220,6 +287,21 @@ catty_light_energy = 0.5 player_movement_rect = Rect2(18, -158, 714, 316) facing_direction = Vector2(1, 0) +[node name="胖子" type="AnimatedSprite2D" parent="Ground/MainPlayer" index="6"] +modulate = Color(1, 1, 1, 0) +light_mask = 257 +position = Vector2(-1, -56) +sprite_frames = ExtResource("28_2kdsp") +animation = &"c02_张胖子_idle" +autoplay = "c02_张胖子_idle" + +[node name="Light胖子闪烁" type="PointLight2D" parent="Ground/MainPlayer" index="7"] +position = Vector2(-1, -48) +color = Color(0, 0, 0, 1) +blend_mode = 2 +range_item_cull_mask = 256 +texture = SubResource("GradientTexture2D_akd3f") + [node name="CameraFocusMarker" parent="Ground" index="6"] limit_right = 750 diff --git a/scene/ground/scene/c03/s10_胖子游戏1.gd b/scene/ground/scene/c03/s10_胖子游戏1.gd index 7cd9f1fe..158283c3 100644 --- a/scene/ground/scene/c03/s10_胖子游戏1.gd +++ b/scene/ground/scene/c03/s10_胖子游戏1.gd @@ -4,7 +4,7 @@ extends AnimationRoot # 覆盖该方法 func _default_data() -> Dictionary: - return {} + return {"has_entered": false} func _ready() -> void: @@ -42,13 +42,23 @@ func _setup_node_reference() -> void: func _on_ground_ready() -> void: - _enter_scene() # 设置相机范围 var right_x = player.player_movement_rect.size.x var rect := Rect2i(0, -158, int(right_x) + 200, 316) SceneManager.get_camera_marker().apply_limits(rect) monster.before_restart.connect(_on_monster_restart) + # 如果播放过,隐藏砍断文字 label + if $"../DeployLayer/AmbushLabel2".played: + $"../DeployLayer/砍断Pivot".hide() + + var ambush3 = $"../DeployLayer/Ambush肉山3" + # 玩家最早从 ambush3 开始玩 + player.global_position.x = min(player.global_position.x, ambush3.global_position.x) + + if not data["has_entered"]: + _do_enter_scene() + #0: 初始化; 1-3 三关 @@ -79,18 +89,49 @@ func _on_chop_timer_timeout() -> void: aiming_duration = clampf(aiming_duration - 0.1, 2.0, 3.0) chop_timer.wait_time = aiming_duration + 0.5 monster.chop_right(aiming_duration) - var next_x = player_pos.x + player.velocity.x * aiming_duration + randf_range(0.0, 50.0) - monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y) - await Util.wait(0.5) - next_x = player_pos.x + player.velocity.x * aiming_duration + randf_range(-20.0, 20.0) - monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y) - await Util.wait(0.5) - next_x = player_pos.x + player.velocity.x * aiming_duration + randf_range(-20.0, 20.0) - monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y) + _update_target_position() + Util.timer(0.5, _update_target_position) + Util.timer(1.0, _update_target_position) + Util.timer(1.5, _update_target_position) if GlobalConfig.DEBUG: print("棺材怪 chop next_x=", monster_target.global_position.x, "s_range=", s_range) +func _update_target_position() -> void: + var player_pos = player.global_position + var next_x = player_pos.x + min(player.velocity.x * aiming_duration, 150.0) + randf_range(-20.0, 20.0) + var s_range = range_of_stages[current_stage - 1] + monster_target.global_position.x = clampf(next_x, s_range.x, s_range.y) + + +func _tween_display_label(node) -> void: + var label = node.get_node("Label") + label.modulate.a = 0.0 + label.show() + var tween = create_tween() + tween.tween_property(label, "modulate:a", 1.0, 0.5) + tween.tween_interval(5.0) + tween.tween_property(label, "modulate:a", 0.0, 0.5) + + +func label_ambush1() -> void: + var ambush = $"../DeployLayer/AmbushLabel1" + _tween_display_label(ambush) + + +# 使用 AnimationPlayer 砍断文字 +func label_ambush2() -> void: + SceneManager.lock_player() + play("chop_split_word") + await animation_finished + SceneManager.unlock_player() + + +func label_ambush3() -> void: + var ambush = $"../DeployLayer/AmbushLabel3" + _tween_display_label(ambush) + + func drop_meat_hill_1() -> void: monster.hand_mode = 0 var ambush = $"../DeployLayer/Ambush肉山1" @@ -146,6 +187,7 @@ func _on_monster_restart() -> void: const MEAT_MIN_DISTANCE = 100.0 + # 天上掉肉 func _drop_meat_hill() -> void: var camera = SceneManager.get_camera_marker() @@ -170,16 +212,14 @@ func _drop(progress: float, start_y: float, target_y: float) -> void: meat_hill.global_position.x = min(max_x, meat_hill.global_position.x) -func _enter_scene() -> void: +func _do_enter_scene() -> void: var portal_x = $"../DeployLayer/portal_left".global_position.x - var player_x = player.global_position.x - if GlobalConfig.DEBUG and player_x > 100: - return player.global_position.x = portal_x SceneManager.lock_player(0, 5, true) SceneManager.pause_and_hide_player_sprite(4.5) await player.animation_finished SceneManager.unlock_player() + set_data("has_entered", true) func _run_game() -> void: @@ -191,3 +231,7 @@ func _run_game() -> void: monster.chop_left(1.0) await Util.wait(4.0) monster.chop_right(1.0) + +func chop_shake() -> void: + var camera = SceneManager.get_camera_marker() + camera.shake_camera(4.0) \ No newline at end of file diff --git a/scene/ground/scene/c03/s10_胖子游戏1.tscn b/scene/ground/scene/c03/s10_胖子游戏1.tscn index f1bbb84d..8fbd590c 100644 --- a/scene/ground/scene/c03/s10_胖子游戏1.tscn +++ b/scene/ground/scene/c03/s10_胖子游戏1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=38 format=3 uid="uid://clgwc3jcqarpe"] +[gd_scene load_steps=41 format=3 uid="uid://clgwc3jcqarpe"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0c2p2"] [ext_resource type="Script" uid="uid://cs4ddcjq81c1d" path="res://scene/ground/scene/c03/s10_胖子游戏1.gd" id="2_tthij"] @@ -32,8 +32,299 @@ [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="20_4gg56"] [ext_resource type="Texture2D" uid="uid://0qkxvm0xiubu" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/落点2.png" id="20_whxhi"] [ext_resource type="SpriteFrames" uid="uid://dy8b8dmgv3mdd" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第二段/c03_胖子游戏第二段_frames.tres" id="21_4bvrv"] +[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="22_v1flc"] + +[sub_resource type="Animation" id="Animation_4bvrv"] +resource_name = "chop_split_word" +length = 4.0 +capture_included = true +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DeployLayer/砍断文字的手:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"左手砍"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("DeployLayer/砍断文字的手:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 2.03333, 2.2, 2.3, 2.36667, 2.93333, 3, 4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(1566, -284), Vector2(1566, -284), Vector2(1566, -100), Vector2(1566, -17), Vector2(1566, -17), Vector2(1566, -17), Vector2(1566, -17), Vector2(1566, -300)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("DeployLayer/砍断文字的手:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 2.26667, 2.43333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 2, +"values": [0, 0, 2] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.6), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-206, -18), Vector2(-206, -18), Vector2(-224, 12), Vector2(-233, 189), Vector2(-169, 338)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.6), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.0, -0.13036, -0.88622, -1.55322] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.63333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.0, 0.139331, 1.32286, 1.9148] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.0333333, 2.2, 2.23333, 2.46667, 2.63333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(4, -17), Vector2(4, -17), Vector2(15, -14), Vector2(69, 35), Vector2(152, 146)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("DeployLayer/砍断文字的落点:scale") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 1.73333, 2.5, 3.13333, 3.76667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(1e-05, 1e-05), Vector2(0.8, 0.8), Vector2(1, 1), Vector2(1, 1), Vector2(0, 0)] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("CanvasLayer/胖子游戏棺材怪/Sfx2D棺材怪切刀:playing") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(2.36667), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:modulate") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(2.13654, 2.46667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:modulate") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(2.13654, 2.46667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/11/type = "method" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("AnimationPlayer") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(2.33333), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"chop_shake" +}] +} + +[sub_resource type="Animation" id="Animation_v1flc"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DeployLayer/砍断文字的手:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"左手砍"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("DeployLayer/砍断文字的手:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1566, -284)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("DeployLayer/砍断文字的手:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-206, -18)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(4, -17)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("DeployLayer/砍断文字的落点:scale") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1e-05, 1e-05)] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("CanvasLayer/胖子游戏棺材怪/Sfx2D棺材怪切刀:playing") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字1:modulate") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("DeployLayer/砍断Pivot/被砍断的文字2:modulate") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] +_data = { +&"RESET": SubResource("Animation_v1flc"), +&"chop_split_word": SubResource("Animation_4bvrv") +} [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_2wy2j"] radius = 20.0 @@ -58,6 +349,7 @@ stream_3/stream = ExtResource("10_js8ld") [node name="S10" type="Node2D"] metadata/_edit_horizontal_guides_ = [98.0, 120.0, -120.0] +metadata/_edit_vertical_guides_ = [1564.0] [node name="Ground" parent="." instance=ExtResource("1_0c2p2")] scene_name = "c03_s10" @@ -106,7 +398,7 @@ texture = ExtResource("17_f57cq") position = Vector2(202, 15) [node name="portal_right" parent="Ground/DeployLayer" index="1"] -position = Vector2(8170, 31) +position = Vector2(8914, 30.5) texture = ExtResource("8_o5hrx") offset = Vector2(65, -59) sign_mark_offset = Vector2(0, -28.54) @@ -125,12 +417,12 @@ animation = &"胖子的母亲" autoplay = "胖子的母亲" [node name="落点左" type="Sprite2D" parent="Ground/DeployLayer" index="3"] -position = Vector2(1582, 98) +position = Vector2(3126, 97.5) scale = Vector2(1e-05, 1e-05) texture = ExtResource("18_js8ld") [node name="左侧手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="4"] -position = Vector2(1582, -317) +position = Vector2(3126, -317.5) sprite_frames = ExtResource("16_f57cq") animation = &"左手砍" offset = Vector2(-11, -13) @@ -155,12 +447,12 @@ shape = SubResource("CapsuleShape2D_whxhi") disabled = true [node name="落点右" type="Sprite2D" parent="Ground/DeployLayer" index="5"] -position = Vector2(2158, 98) +position = Vector2(3702, 97.5) scale = Vector2(1e-05, 1e-05) texture = ExtResource("20_whxhi") [node name="右侧手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="6"] -position = Vector2(2158, -317) +position = Vector2(3702, -317.5) sprite_frames = ExtResource("16_f57cq") animation = &"右手砍" offset = Vector2(9, -12) @@ -185,10 +477,10 @@ shape = SubResource("CapsuleShape2D_whxhi") disabled = true [node name="MonsterMoveTarget" type="Marker2D" parent="Ground/DeployLayer" index="7"] -position = Vector2(1646, -1) +position = Vector2(2061, -1) [node name="肉山" type="AnimatableBody2D" parent="Ground/DeployLayer" index="8"] -position = Vector2(162, -421) +position = Vector2(-308, -591) collision_layer = 2 collision_mask = 0 @@ -222,54 +514,61 @@ position = Vector2(-19, -38) shape = SubResource("CircleShape2D_lljm3") [node name="肉山Transform" type="RemoteTransform2D" parent="Ground/DeployLayer" index="9"] -position = Vector2(162, -421) +position = Vector2(-308, -591) remote_path = NodePath("../肉山") update_rotation = false update_scale = false [node name="Ambush肉山1" parent="Ground/DeployLayer" index="10" instance=ExtResource("11_lljm3")] -position = Vector2(1238, -3) +position = Vector2(1982, -3.5) one_shot = false hook_method = "drop_meat_hill_1" [node name="Start1" type="Marker2D" parent="Ground/DeployLayer" index="11"] -position = Vector2(1261, -2) +position = Vector2(2005, -2.5) [node name="End1" type="Marker2D" parent="Ground/DeployLayer" index="12"] -position = Vector2(1926, -3) +position = Vector2(2676, -2) [node name="Ambush肉山2" parent="Ground/DeployLayer" index="13" instance=ExtResource("11_lljm3")] -position = Vector2(2078, -8) +position = Vector2(2828, -7) one_shot = false hook_method = "drop_meat_hill_2" [node name="Start2" type="Marker2D" parent="Ground/DeployLayer" index="14"] -position = Vector2(2145, -11) +position = Vector2(2895, -10) [node name="End2" type="Marker2D" parent="Ground/DeployLayer" index="15"] -position = Vector2(4128, -16) +position = Vector2(5259, -7) [node name="Ambush肉山3" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_lljm3")] -position = Vector2(4337, -13) +position = Vector2(5468, -4) one_shot = false hook_method = "drop_meat_hill_3" [node name="Start3" type="Marker2D" parent="Ground/DeployLayer" index="17"] -position = Vector2(4562, -10) +position = Vector2(5693, -1) [node name="End3" type="Marker2D" parent="Ground/DeployLayer" index="18"] -position = Vector2(7618, 9) +position = Vector2(7860, -1) [node name="ChopTimer" type="Timer" parent="Ground/DeployLayer" index="19"] wait_time = 2.5 autostart = true -[node name="老太太文字" type="RichTextLabel" parent="Ground/DeployLayer" index="20"] +[node name="AmbushLabel1" parent="Ground/DeployLayer" index="20" instance=ExtResource("11_lljm3")] +position = Vector2(591, 51) +hook_method = "label_ambush1" + +[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel1"] +visible = false +z_index = 6 custom_minimum_size = Vector2(1000, 0) -offset_left = 126.0 -offset_top = -70.0 -offset_right = 1126.0 -offset_bottom = -29.0 +offset_left = -263.0 +offset_top = -53.0 +offset_right = 737.0 +offset_bottom = -12.0 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("19_usr2w") theme_override_font_sizes/normal_font_size = 40 @@ -279,21 +578,43 @@ fit_content = true scroll_active = false horizontal_alignment = 1 -[node name="Control" type="Control" parent="Ground/DeployLayer" index="21"] +[node name="AmbushLabel2" parent="Ground/DeployLayer" index="21" instance=ExtResource("11_lljm3")] +position = Vector2(1442, 42) +hook_method = "label_ambush2" + +[node name="砍断文字的手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="22"] +z_index = 6 +position = Vector2(1566, -284) +sprite_frames = ExtResource("16_f57cq") +animation = &"左手砍" +offset = Vector2(-11, -13) + +[node name="砍断文字的落点" type="Sprite2D" parent="Ground/DeployLayer" index="23"] +position = Vector2(1564, 98) +scale = Vector2(1e-05, 1e-05) +texture = ExtResource("18_js8ld") + +[node name="砍断Pivot" type="Control" parent="Ground/DeployLayer" index="24"] layout_mode = 3 anchors_preset = 0 -offset_left = 1563.0 -offset_top = -47.0 -offset_right = 1603.0 -offset_bottom = -7.0 +offset_left = 1564.0 +offset_right = 1604.0 +offset_bottom = 40.0 +mouse_filter = 2 -[node name="被砍断的文字1" type="RichTextLabel" parent="Ground/DeployLayer/Control"] +[node name="被砍断的文字1" type="RichTextLabel" parent="Ground/DeployLayer/砍断Pivot"] custom_minimum_size = Vector2(200, 0) -layout_mode = 0 -offset_left = -206.0 -offset_top = -18.0 -offset_right = -6.0 -offset_bottom = 23.0 +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.525 +anchor_top = 9.475 +anchor_right = 0.525 +anchor_bottom = 9.475 +offset_left = -249.587 +offset_top = -276.792 +offset_right = -49.5868 +offset_bottom = -235.792 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("19_usr2w") theme_override_font_sizes/normal_font_size = 40 @@ -302,15 +623,15 @@ text = "[wave]活[/wave]" fit_content = true scroll_active = false horizontal_alignment = 2 -metadata/_edit_use_anchors_ = true -[node name="被砍断的文字2" type="RichTextLabel" parent="Ground/DeployLayer/Control"] +[node name="被砍断的文字2" type="RichTextLabel" parent="Ground/DeployLayer/砍断Pivot"] custom_minimum_size = Vector2(200, 0) layout_mode = 0 -offset_left = 4.0 -offset_top = -17.0 -offset_right = 204.0 -offset_bottom = 24.0 +offset_left = 42.5211 +offset_top = 10.9728 +offset_right = 242.521 +offset_bottom = 51.9728 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("19_usr2w") theme_override_font_sizes/normal_font_size = 40 @@ -319,12 +640,19 @@ text = "[wave]着[/wave]" fit_content = true scroll_active = false -[node name="结尾文字" type="RichTextLabel" parent="Ground/DeployLayer" index="22"] +[node name="AmbushLabel3" parent="Ground/DeployLayer" index="25" instance=ExtResource("11_lljm3")] +position = Vector2(8448, 36) +hook_method = "label_ambush3" + +[node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel3"] +visible = false +z_index = 6 custom_minimum_size = Vector2(1000, 0) -offset_left = 7302.0 -offset_top = -71.0 -offset_right = 8302.0 -offset_bottom = -30.0 +offset_left = -372.0 +offset_top = -40.0 +offset_right = 628.0 +offset_bottom = 1.0 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("19_usr2w") theme_override_font_sizes/normal_font_size = 40 @@ -334,23 +662,23 @@ fit_content = true scroll_active = false horizontal_alignment = 1 -[node name="PointLight2D结尾文字" type="PointLight2D" parent="Ground/DeployLayer/结尾文字"] +[node name="PointLight2D结尾文字" type="PointLight2D" parent="Ground/DeployLayer/AmbushLabel3/Label"] position = Vector2(835, 78) range_layer_min = -5 texture = ExtResource("20_4gg56") texture_scale = 1.1 -[node name="洞口的手2" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="23"] +[node name="洞口的手2" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="26"] z_index = -1 -position = Vector2(8091, 31) +position = Vector2(8835, 30.5) sprite_frames = ExtResource("21_4bvrv") animation = &"小手" autoplay = "小手" speed_scale = 1.1 -[node name="洞口的手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="24"] +[node name="洞口的手" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="27"] z_index = 9 -position = Vector2(8155, 35) +position = Vector2(8899, 34.5) sprite_frames = ExtResource("21_4bvrv") animation = &"小手" autoplay = "小手" @@ -382,6 +710,13 @@ character = "胖子游戏" player_movement_rect = Rect2(30, -158, 8170, 316) facing_direction = Vector2(1, 0) +[node name="PointLight2D2" type="PointLight2D" parent="Ground/MainPlayer" index="6"] +position = Vector2(-4, -40) +energy = 0.5 +range_layer_min = -10 +range_layer_max = 2 +texture = ExtResource("22_v1flc") + [node name="BGParallaxLayer" parent="Ground/ParallaxForeground" index="0"] motion_scale = Vector2(0.9, 1) @@ -395,7 +730,7 @@ texture = ExtResource("6_hno1l") offset = Vector2(0, 50) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] -points = PackedVector2Array(30, 150, 8162, 151) +points = PackedVector2Array(30, 150, 8921, 151) [node name="DirectionalLight2D" parent="Ground" index="8"] energy = 0.4 @@ -463,7 +798,7 @@ follow_viewport_enabled = true [node name="胖子游戏棺材怪" type="AnimatedSprite2D" parent="Ground/CanvasLayer" node_paths=PackedStringArray("move_target", "left_side_sprite", "right_side_sprite", "left_area", "right_area", "left_static_collision", "right_static_collision")] self_modulate = Color(1, 1, 1, 0) z_index = -1 -position = Vector2(1890, -17) +position = Vector2(3434, -17.5) sprite_frames = ExtResource("16_f57cq") animation = &"棺材怪右砍" script = ExtResource("9_js8ld") @@ -485,12 +820,11 @@ loop = true loop_round_time = 0.4 metadata/_custom_type_script = "uid://wapo47a1oddf" -[node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer2D" parent="Ground/CanvasLayer/胖子游戏棺材怪"] +[node name="Sfx2D棺材怪切刀" type="AudioStreamPlayer" parent="Ground/CanvasLayer/胖子游戏棺材怪"] stream = ExtResource("12_whxhi") -max_distance = 1000.0 bus = &"game_sfx" -script = ExtResource("10_f57cq") -metadata/_custom_type_script = "uid://wapo47a1oddf" +script = ExtResource("4_60xwi") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="左侧" type="RemoteTransform2D" parent="Ground/CanvasLayer/胖子游戏棺材怪"] position = Vector2(-308, -300) diff --git a/scene/ground/scene/c03/s11_胖子游戏2.gd b/scene/ground/scene/c03/s11_胖子游戏2.gd index 76d44eb0..4c1b9b02 100644 --- a/scene/ground/scene/c03/s11_胖子游戏2.gd +++ b/scene/ground/scene/c03/s11_胖子游戏2.gd @@ -41,6 +41,7 @@ func _check_first_enter() -> void: func talk_with_npc() -> void: + $"../DeployLayer/Ambush对话探子".enabled = false SceneManager.lock_player() $"../DeployLayer/Pro探子".flip_h = false var camera = SceneManager.get_camera_marker() diff --git a/scene/ground/scene/c03/s11_胖子游戏2.tscn b/scene/ground/scene/c03/s11_胖子游戏2.tscn index 66c71395..a37e697b 100644 --- a/scene/ground/scene/c03/s11_胖子游戏2.tscn +++ b/scene/ground/scene/c03/s11_胖子游戏2.tscn @@ -95,6 +95,7 @@ metadata/_custom_type_script = "uid://cphfob11f7atx" [node name="Ambush对话探子" parent="Ground/DeployLayer" index="4" instance=ExtResource("9_0w5fd")] position = Vector2(995.5, 44.5) +one_shot = false hook_method = "talk_with_npc" [node name="文物" type="Sprite2D" parent="Ground/DeployLayer" index="5"] diff --git a/scene/ground/scene/c03/s12_胖子游戏3.gd b/scene/ground/scene/c03/s12_胖子游戏3.gd index 72cd5ddc..e26badeb 100644 --- a/scene/ground/scene/c03/s12_胖子游戏3.gd +++ b/scene/ground/scene/c03/s12_胖子游戏3.gd @@ -4,7 +4,7 @@ extends AnimationRoot # 覆盖该方法 func _default_data() -> Dictionary: - return {} + return {"has_entered": false} func _ready() -> void: @@ -47,6 +47,15 @@ func _on_ground_ready() -> void: _disable_wall_on_meat(node) else: node.triggered.connect(_on_eat_meat_triggered.bind(node)) + if not data["has_entered"]: + var x = $"../DeployLayer/portal_left".global_position.x + SceneManager.get_player().global_position.x = x + SceneManager.get_player().set_facing_direction(Vector2.RIGHT) + SceneManager.lock_player(0, 9, true) + set_data("has_entered", true) + await SceneManager.pause_and_hide_player_sprite(1.0) + await SceneManager.get_player().animation_finished + SceneManager.unlock_player() func _disable_wall_on_meat(meat_node) -> void: @@ -71,7 +80,7 @@ func _tween_display_label(node) -> void: label.show() var tween = create_tween() tween.tween_property(label, "modulate:a", 1.0, 0.5) - tween.tween_interval(3.5) + tween.tween_interval(5.0) tween.tween_property(label, "modulate:a", 0.0, 0.5) diff --git a/scene/ground/scene/c03/s12_胖子游戏3.tscn b/scene/ground/scene/c03/s12_胖子游戏3.tscn index 3d1734e4..2cb0bfe0 100644 --- a/scene/ground/scene/c03/s12_胖子游戏3.tscn +++ b/scene/ground/scene/c03/s12_胖子游戏3.tscn @@ -144,7 +144,7 @@ position = Vector2(2797, 0) offset = Vector2(0, -158) [node name="portal_left" parent="Ground/DeployLayer" index="0"] -position = Vector2(69, 21) +position = Vector2(159, 29) [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(7496, 3) @@ -155,11 +155,12 @@ hook_method = "label_ambush1" [node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel1"] visible = false +z_index = 6 custom_minimum_size = Vector2(500, 0) -offset_left = -157.0 -offset_top = -114.0 -offset_right = 343.0 -offset_bottom = -73.0 +offset_left = -128.0 +offset_top = -30.0 +offset_right = 372.0 +offset_bottom = 11.0 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -190,6 +191,7 @@ offset_left = -474.0 offset_top = -169.0 offset_right = 526.0 offset_bottom = -128.0 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -204,11 +206,12 @@ hook_method = "label_ambush2" [node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel2"] visible = false +z_index = 6 custom_minimum_size = Vector2(500, 0) -offset_left = -143.0 -offset_top = -122.0 -offset_right = 357.0 -offset_bottom = -81.0 +offset_left = -145.0 +offset_top = -39.0 +offset_right = 355.0 +offset_bottom = 2.0 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -239,6 +242,7 @@ offset_left = -204.0 offset_top = -166.0 offset_right = 296.0 offset_bottom = -125.0 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -270,6 +274,7 @@ offset_left = -232.0 offset_top = -165.0 offset_right = 268.0 offset_bottom = -124.0 +mouse_filter = 2 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -279,16 +284,17 @@ fit_content = true horizontal_alignment = 1 [node name="AmbushLabel3" parent="Ground/DeployLayer" index="7" instance=ExtResource("11_sul0a")] -position = Vector2(4621, 52) +position = Vector2(4566, 54) hook_method = "label_ambush3" [node name="Label" type="RichTextLabel" parent="Ground/DeployLayer/AmbushLabel3"] visible = false +z_index = 6 custom_minimum_size = Vector2(500, 0) -offset_left = -101.0 -offset_top = -123.0 -offset_right = 399.0 -offset_bottom = -82.0 +offset_left = -79.0 +offset_top = -58.0 +offset_right = 421.0 +offset_bottom = -17.0 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -298,7 +304,7 @@ fit_content = true horizontal_alignment = 1 [node name="Ambush小孩山塌了" parent="Ground/DeployLayer" index="8" instance=ExtResource("11_sul0a")] -position = Vector2(5579.84, 32.01) +position = Vector2(5609.84, 32.01) trigger_mode = "interact" one_shot = false hook_method = "collapse" @@ -308,11 +314,12 @@ position = Vector2(66.1602, 3.99001) [node name="都一样" type="RichTextLabel" parent="Ground/DeployLayer" index="9"] visible = false +z_index = 6 custom_minimum_size = Vector2(500, 0) -offset_left = 5401.0 -offset_top = -69.0 -offset_right = 5901.0 -offset_bottom = -28.0 +offset_left = 5438.0 +offset_top = 17.0 +offset_right = 5938.0 +offset_bottom = 58.0 theme_override_colors/default_color = Color(1, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("11_mr0pm") theme_override_font_sizes/normal_font_size = 40 @@ -425,7 +432,7 @@ layer = -1 [node name="小孩山塌了" type="AnimatedSprite2D" parent="Ground/ParallaxBackground2/山前地后"] light_mask = 1025 -position = Vector2(5642.84, -25.99) +position = Vector2(5672.84, -25.99) sprite_frames = ExtResource("10_7x1vi") animation = &"小孩山塌了" offset = Vector2(-47.84, -0.01) diff --git a/scene/ground/script/c03/s07_closeup绞肉机.gd b/scene/ground/script/c03/s07_closeup绞肉机.gd index 3337599f..c625bdfa 100644 --- a/scene/ground/script/c03/s07_closeup绞肉机.gd +++ b/scene/ground/script/c03/s07_closeup绞肉机.gd @@ -40,14 +40,14 @@ func _ready() -> void: var rotationg_steps := 0 var last_step_msec := 0 -const TOTAL_STEPS = 6 * 3 # 转 3 圈 +const TOTAL_STEPS = 6 * 4 # 转 4 圈 func _on_wheel_rotated(_radiant: float) -> void: if rotationg_steps >= TOTAL_STEPS: return var time = Time.get_ticks_msec() - if time - last_step_msec < 200: + if time - last_step_msec < 100: return last_step_msec = time if not wheel_sfx.playing: diff --git a/scene/ground/script/c03/s07_event胖子游戏结束演出.gd b/scene/ground/script/c03/s07_event胖子游戏结束演出.gd index a7d8dec6..12fdaeb5 100644 --- a/scene/ground/script/c03/s07_event胖子游戏结束演出.gd +++ b/scene/ground/script/c03/s07_event胖子游戏结束演出.gd @@ -21,14 +21,14 @@ func _on_ground_ready(_ground: Ground2D) -> void: # 进入演出 var portal_2_x = $"../portal_2".global_position.x SceneManager.get_player().global_position.x = portal_2_x - _fatty_game_finished_show() + _fatty_game_finished_show.call_deferred() func _fatty_game_finished_show() -> void: var player = SceneManager.get_player() var camera = SceneManager.get_camera_marker() - SceneManager.lock_player(0, 20) player.set_facing_direction(Vector2.LEFT) + SceneManager.lock_player(0, 21, true) var monster = $"../棺材怪切肉" as AnimatedSprite2D monster.show() monster.play("砍桌子") @@ -49,8 +49,6 @@ func _fatty_game_finished_show() -> void: create_tween().tween_property(sfx_monster, "volume_db", -100.0, 1.0) create_tween().tween_property(sfx_laugh, "position:x", -500.0, 3.0).as_relative() await Util.wait(3.0) - # 镜头恢复前,显示小蝉 & 玩家起身 - SceneManager.get_player()._play_animation() var ambush_xchan = $"../Ambush小蝉消失" as Ambush2D ambush_xchan.visible = true ambush_xchan.modulate.a = 0.0 diff --git a/scene/ground/script/c03/胖子游戏棺材怪.gd b/scene/ground/script/c03/胖子游戏棺材怪.gd index ef069c13..29ddf66c 100644 --- a/scene/ground/script/c03/胖子游戏棺材怪.gd +++ b/scene/ground/script/c03/胖子游戏棺材怪.gd @@ -20,7 +20,7 @@ const RESET_Y := -300.0 @export var right_static_collision: CollisionShape2D @onready var footstep_sfx = $"Sfx2D棺材怪脚步声" as Sfx2D -@onready var chop_sfx = $"Sfx2D棺材怪切刀" as Sfx2D +@onready var chop_sfx = $"Sfx2D棺材怪切刀" as Sfx @onready var remote_left_side = $"左侧" as RemoteTransform2D @onready var remote_right_side = $"右侧" as RemoteTransform2D