From d0ae1d1f71668297783381a24ffc7c2fb687685f Mon Sep 17 00:00:00 2001 From: cakipaul Date: Sat, 5 Jul 2025 02:01:02 +0800 Subject: [PATCH] =?UTF-8?q?demo=200.2.0.3=20hotfix=20=E7=BA=A2=E8=89=B2?= =?UTF-8?q?=E8=A3=82=E7=BC=9D=EF=BC=9B=E8=B0=A2=E5=B9=95=E6=BC=94=E5=87=BA?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E4=BD=8D=E7=BD=AE=E4=B8=8E=E8=9C=A1=E7=83=9B?= =?UTF-8?q?=E7=82=B9=E7=87=83=E7=AD=89=E7=BB=86=E8=8A=82=EF=BC=9B=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=97=A5=E5=BF=97=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset/art/ui/标题字/标题字-12.png | Bin 24118 -> 16911 bytes asset/dialogue/inspect_content.csv | 12 +-- asset/dialogue/inspect_content.dialogue | 12 +-- asset/dialogue/item_description.csv | 5 +- asset/dialogue/item_description.dialogue | 4 +- asset/dialogue/纯中文_无需本地化.csv | 2 +- asset/dialogue/纯中文_无需本地化.dialogue | 2 +- manager/archive_manager/assembled_archive.gd | 5 +- .../config_manager/global_config_manager.gd | 39 ++++----- manager/config_manager/packed_time.gd | 3 +- manager/scene/scene_manager.gd | 10 ++- scene/entity/pickable.gd | 2 +- .../ground/scene/c01/s06_孤儿院长廊围墙.tscn | 10 ++- scene/ground/scene/c02/s03_院子.tscn | 10 ++- scene/ground/scene/c02/s06_二楼.gd | 19 ++++- scene/ground/scene/c02/s06_二楼.tscn | 80 +++++++++++------- scene/ground/scene/c02/s09_裂缝.tscn | 65 +++++++++++--- scene/ground/scene/c02/s12_盒子猫.tscn | 6 ++ scene/ground/script/c02/裂缝议论文字.gd | 3 +- scene/little_game/弹珠游戏/ball.gd | 39 ++++++--- scene/little_game/弹珠游戏/弹珠游戏.gd | 6 +- scene/main.gd | 3 + 22 files changed, 216 insertions(+), 121 deletions(-) diff --git a/asset/art/ui/标题字/标题字-12.png b/asset/art/ui/标题字/标题字-12.png index 8e3be798213d2e03e3d2c3c6d1897d8846292823..8bddd7600a1c93733ee6184fb9cad9d0212c7953 100644 GIT binary patch literal 16911 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 literal 24118 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 END diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index d94371cb..d7e9610e 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -5,6 +5,7 @@ prop_小猫纸条,小猫纸条,,,[#texture=c02/小猫纸条.png],, prop_小猫纸条_说明,「大哥,今晚老地方见 /井\」,,,,, prop_眼镜,眼镜,,,[#texture=c02/眼镜.png],, prop_眼镜_说明,这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,, +prop_小鞋子_说明,这只小鞋子曾经属于一个裹了小脚的女孩,鞋不成双,祸事难防。,,,,, index_新游戏,新游戏,,,,, index_继续游戏,继续游戏,,,,, index_退出游戏,退出游戏,,,,, @@ -108,8 +109,8 @@ prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],, prop_眼镜盒_说明,这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,, prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],, prop_小蝉人偶_说明,小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。,,,,, -prop_单只小鞋子,单只小鞋子,,,[#texture=c02/小鞋子1.png],, -prop_小鞋子_说明,这只小鞋子曾经属于一个裹了小脚的女孩,鞋不成双,祸事难防。,,,,, +prop_单只小鞋子,一只小鞋子,,,[#texture=c02/小鞋子1.png],, +prop_单只小鞋子_说明,这只小鞋子曾经属于一个裹了小脚的女孩。
鞋不成双,祸事难防。,,,,, c01_s05_检查院长房间,好像忘记了什么事情,再回去检查一遍吧。,,ID格式: prop_xx_说明,,, c01_s07_需要报纸,书店还没开门。,,,,, c01_s08_书店工作,老板交代的工作还没做完,不能偷懒。,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index da92b140..13ec28d9 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -135,8 +135,8 @@ 这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。[ID:prop_眼镜盒_说明] 小蝉人偶[#texture=c02/小蝉人偶.png] [ID:prop_小蝉人偶] 小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。 [ID:prop_小蝉人偶_说明] -单只小鞋子 [#texture=c02/小鞋子1.png] [ID:prop_单只小鞋子] -这只小鞋子曾经属于一个裹了小脚的女孩,鞋不成双,祸事难防。[ID:prop_小鞋子_说明] +一只小鞋子 [#texture=c02/小鞋子1.png] [ID:prop_单只小鞋子] +这只小鞋子曾经属于一个裹了小脚的女孩。
鞋不成双,祸事难防。[ID:prop_单只小鞋子_说明] => END #~ prop说明 diff --git a/asset/dialogue/纯中文_无需本地化.csv b/asset/dialogue/纯中文_无需本地化.csv index a47470cb..43415b89 100644 --- a/asset/dialogue/纯中文_无需本地化.csv +++ b/asset/dialogue/纯中文_无需本地化.csv @@ -21,6 +21,6 @@ c02_议论文字19,你们在说什么妖怪?,,, c02_议论文字20,谁家有妖怪?,,, c02_议论文字21,啥妖怪,,, c02_议论文字22,真的假的妖怪,,, -c02_议论文字23,3014那家有妖怪,,, +c02_议论文字23,三〇一二那家有妖怪,,, c02_议论文字24,要死了,,, c02_议论文字25,养妖怪,,, diff --git a/asset/dialogue/纯中文_无需本地化.dialogue b/asset/dialogue/纯中文_无需本地化.dialogue index f2b5daf4..b82847a3 100644 --- a/asset/dialogue/纯中文_无需本地化.dialogue +++ b/asset/dialogue/纯中文_无需本地化.dialogue @@ -21,7 +21,7 @@ 谁家有妖怪? [ID:c02_议论文字20] 啥妖怪 [ID:c02_议论文字21] 真的假的妖怪 [ID:c02_议论文字22] -3014那家有妖怪 [ID:c02_议论文字23] +三〇一二那家有妖怪 [ID:c02_议论文字23] 要死了 [ID:c02_议论文字24] 养妖怪 [ID:c02_议论文字25] => END \ No newline at end of file diff --git a/manager/archive_manager/assembled_archive.gd b/manager/archive_manager/assembled_archive.gd index aa8163b5..582d301f 100644 --- a/manager/archive_manager/assembled_archive.gd +++ b/manager/archive_manager/assembled_archive.gd @@ -22,9 +22,8 @@ class_name AssembledArchive extends Resource # 只有在 >=0 的情况下才会生效 @export var player_global_position_x := -100.0 @export var player_direction := Vector2(0, 0) -# game total seconds -@export var game_seconds_all := 0 -@export var game_seconds_current := 0 +# game seconds +@export var game_seconds := 0 # created time @export var created_time := "2024-12-24 00:00:00" diff --git a/manager/config_manager/global_config_manager.gd b/manager/config_manager/global_config_manager.gd index 5f89906e..7259fee4 100644 --- a/manager/config_manager/global_config_manager.gd +++ b/manager/config_manager/global_config_manager.gd @@ -62,38 +62,29 @@ func update_locale(lang_id: int, caption_id: int): TranslationServer.set_locale(lang) +var _on_timer_timeout_counter := 0 + + func _on_timer_timeout(): var archive = ArchiveManager.archive - if archive: - archive.game_seconds_all += 5 - archive.game_seconds_current += 5 - if config: + if archive and config: + archive.game_seconds += 5 config.game_total_seconds += 5 - - -func pack_current_time(): - var packed_time = PackedTime.new() - packed_time.time = Time.get_datetime_string_from_system(false, true) - var archive = ArchiveManager.archive - if archive: - packed_time.chapter = archive.current_chapter - packed_time.section = archive.current_section - packed_time.game_archive_id = archive.archive_id - packed_time.game_seconds_all = archive.game_seconds_all - packed_time.game_seconds_current = archive.game_seconds_current + # 30s 打印一次 + if _on_timer_timeout_counter % 6 == 0: + var time = get_concise_timemark(archive) + prints("[timemark]", Time.get_datetime_string_from_system(), time) + _on_timer_timeout_counter += 1 # for log use -func get_concise_timemark() -> String: - var archive = ArchiveManager.archive - if not archive: - return "r0_c0_s0 00:00:00" - var hour = archive.game_seconds_current / 3600 as int - var minute = (archive.game_seconds_current % 3600) / 60 as int - var second = archive.game_seconds_current % 60 +func get_concise_timemark(archive) -> String: + var hour = archive.game_seconds / 3600 as int + var minute = (archive.game_seconds % 3600) / 60 as int + var second = archive.game_seconds % 60 return ( "r" - + str(ArchiveManager.current_archive_id) + + str(config.game_rounds) + "_c" + str(archive.current_chapter) + " " diff --git a/manager/config_manager/packed_time.gd b/manager/config_manager/packed_time.gd index 89d8b431..2f076fa0 100644 --- a/manager/config_manager/packed_time.gd +++ b/manager/config_manager/packed_time.gd @@ -5,8 +5,7 @@ class_name PackedTime extends Resource @export var game_archive_id := 0 @export var game_rounds := 0 @export var timestamp := "2024-12-20 08:00:00" #system -@export var game_seconds_all := 0 #game seconds since current archive start -@export var game_seconds_current := 0 #game seconds since last chapter +@export var game_seconds := 0 #game seconds since last chapter @export var chapter := 0 #chapter id @export var section := 0 #section id diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index 3971155b..521eba6c 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -270,6 +270,7 @@ func pop_center_texture(texture: Texture2D, duration := 3.5) -> void: var chapter_sfx = preload("uid://qku3yk82g364") + func pop_chapter_notification(id: int) -> void: AudioManager.play_sfx(chapter_sfx) var texture @@ -381,7 +382,8 @@ func show_settings() -> void: #### 游戏场景树暂停计数器,设置、memory、bag 等菜单都会导致 pause var pause_counter := 0 -var pause_counter_mutex := Mutex.new() +var pause_counter_mutex := Mutex.new() + func toggle_pause_counter(plus := true) -> void: # 若不 lock,会导致快速切换菜单时出现并发问题(pause_counter 成为负数) @@ -393,6 +395,12 @@ func toggle_pause_counter(plus := true) -> void: func quit_game() -> void: + # 防止 await 阻塞导致 bug + get_inspector().quit_and_hidden.emit() + DialogueManager.dialogue_ended.emit(null) + get_player().os_finished.emit("") + get_player().animation_finished.emit() + ArchiveManager.save_all() var ground_loader = get_ground_loader() as GroundLoader if ground_loader: diff --git a/scene/entity/pickable.gd b/scene/entity/pickable.gd index 3c45e351..ecbb7788 100644 --- a/scene/entity/pickable.gd +++ b/scene/entity/pickable.gd @@ -90,7 +90,7 @@ func _check_display(): if picked: visible = false elif visible_follow_enabled: - visible = enabled + modulate.a = 1.0 if enabled else 0.0 sign_mark.enabled = enabled and is_visible_in_tree() diff --git a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn index d86ae0d8..d30f12cf 100644 --- a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn +++ b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn @@ -291,7 +291,7 @@ speed = 90.0 position = Vector2(1241, -1) sprite_frames = ExtResource("2_l4axy") animation = &"秋千" -frame = 3 +frame = 5 [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/秋千"] process_mode = 1 @@ -321,7 +321,7 @@ position = Vector2(1358, 0) sprite_frames = ExtResource("2_l4axy") animation = &"跷跷板" autoplay = "跷跷板" -frame = 5 +frame = 3 [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/跷跷板"] process_mode = 1 @@ -370,6 +370,7 @@ action_configs = Array[Dictionary]([{ position = Vector2(43, -44.5) sprite_frames = ExtResource("7_dsj2r") animation = &"【画画男孩-1】呼吸" +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "【画画男孩-1】呼吸", "animation_next": "【画画男孩-1】画画", @@ -425,6 +426,7 @@ one_shot = false position = Vector2(1558, -12) sprite_frames = ExtResource("7_dsj2r") animation = &"【站立小孩-3】呼吸" +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": &"【站立小孩-3】转身", "animation_next": "【站立小孩-3】走路", @@ -745,6 +747,7 @@ position = Vector2(377, 18) scale = Vector2(0.9, 0.9) sprite_frames = ExtResource("2_l4axy") animation = &"中蓝衣小孩呼吸" +frame = 2 [node name="门口_右绿衣男孩" parent="Ground/ParallaxForeground/BGParallaxLayer" index="3" instance=ExtResource("8_ouldg")] position = Vector2(408, 3) @@ -756,7 +759,6 @@ light_mask = 2 position = Vector2(333, 9.5) sprite_frames = ExtResource("2_l4axy") animation = &"红衣姑娘呼吸" -frame = 2 action_configs = Array[Dictionary]([{ "animation_intro": &"红衣姑娘抬头", "animation_next": "红衣姑娘呼吸", @@ -777,6 +779,7 @@ texture_scale = 0.5 position = Vector2(301, 8.5) sprite_frames = ExtResource("2_l4axy") animation = &"院长呼吸" +frame = 1 action_configs = Array[Dictionary]([{ "animation_intro": "院长翻书", "animation_next": "院长呼吸", @@ -810,7 +813,6 @@ scale = Vector2(0.8, 0.8) sprite_frames = ExtResource("15_wtosl") animation = &"gif" autoplay = "gif" -frame = 1 centered = false offset = Vector2(0, -159) diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index d361af35..6d2dea1f 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -432,6 +432,7 @@ position = Vector2(953, 42) sprite_frames = ExtResource("11_o1qbs") animation = &"c00_头套小婵_run" autoplay = "c00_头套小婵_idle" +frame = 3 move_configs = Array[Dictionary]([{ "animation": "c00_头套小婵_run", "animation_next": "", @@ -785,6 +786,7 @@ position = Vector2(29, -3) sprite_frames = ExtResource("34_1tart") animation = &"小婵_被霸凌" autoplay = "小婵_被霸凌" +frame = 1 [node name="f1" parent="Ground/DeployLayer/霸凌" instance=ExtResource("33_ycojw")] z_index = 10 @@ -792,7 +794,7 @@ position = Vector2(-11, 1) sprite_frames = ExtResource("34_1tart") animation = &"霸凌1" autoplay = "霸凌1" -frame = 6 +frame = 4 [node name="Sfx2D霸凌童谣" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/霸凌/f1"] process_mode = 1 @@ -810,7 +812,7 @@ position = Vector2(23, 11) sprite_frames = ExtResource("34_1tart") animation = &"霸凌2" autoplay = "霸凌2" -frame = 4 +frame = 9 [node name="f3" parent="Ground/DeployLayer/霸凌" instance=ExtResource("33_ycojw")] z_index = 10 @@ -818,7 +820,7 @@ position = Vector2(57, 7) sprite_frames = ExtResource("34_1tart") animation = &"霸凌3" autoplay = "霸凌3" -frame = 1 +frame = 2 [node name="Ambush点火游戏阻挡右移" parent="Ground/DeployLayer/霸凌" instance=ExtResource("25_iyaiw")] position = Vector2(-116, -13) @@ -1007,7 +1009,6 @@ position = Vector2(2229, 41) sprite_frames = ExtResource("34_1tart") animation = &"霸凌3-发抖" autoplay = "霸凌3-发抖" -frame = 1 [node name="Pro小孩喊着火啦3" parent="Ground/DeployLayer/火灾" instance=ExtResource("33_ycojw")] z_index = 9 @@ -1066,6 +1067,7 @@ z_index = 5 position = Vector2(17, -11) sprite_frames = ExtResource("39_rnk1v") animation = &"吕萍牵手动作" +frame = 3 [node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/火灾/牵手跑"] shape = SubResource("RectangleShape2D_vddfx") diff --git a/scene/ground/scene/c02/s06_二楼.gd b/scene/ground/scene/c02/s06_二楼.gd index 97231759..5a93824d 100644 --- a/scene/ground/scene/c02/s06_二楼.gd +++ b/scene/ground/scene/c02/s06_二楼.gd @@ -138,9 +138,24 @@ func _on_ball_game_exit(success = null): ball_game_boys_ambush.enabled = false ball_game_boys_ambush.visible = false +func _toggle_candles(show: bool) -> void: + var candles = $"../DeployLayer/楼梯蜡烛" + var lights = candles.get_children() + if show: + var tween = create_tween() + tween.tween_property(candles, "modulate:a", 1.0, 1.0) + for light in lights: + tween.parallel().tween_property(light, "energy", 1.2, 1.0) + else: + candles.modulate.a = 0.0 + for light in lights: + light.energy = 0.0 + + # 第一章火灾结束,尾声演出 func _c02_final_show(): + _toggle_candles(false) var player = SceneManager.get_player() player.set_facing_direction(Vector2(-1, 0)) player.update_x_with_camera_followed(650.0) @@ -172,16 +187,18 @@ func _on_exit_final_show(_arg): c02_final_layer.get_node("小蝉").play("小婵捂脸") c02_final_layer.get_node("胖子").play("胖子呼吸") c02_final_layer.get_node("瞎子").play("方瞎子呼吸-右") - await get_tree().create_timer(1.0).timeout + await get_tree().create_timer(3.0).timeout $"../DeployLayer/c02_final/瞎子/Sfx2D脚步声".play() await animation_finished c02_final_layer.queue_free() + _toggle_candles(true) await Util.wait(0.5) # 小蝉上楼后开启第二章 var xxdie = $"../DeployLayer/Pro小小蝶上楼" as AnimatedSprite2D xxdie.play("小小小蝶动画(跑)") + xxdie.get_node("Sfx2D脚步声").play() #跑 await xxdie.animation_changed SceneManager.get_player().set_facing_direction(Vector2.RIGHT) diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index d83e106a..31fbf682 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=63 format=3 uid="uid://cootarwb44vvh"] +[gd_scene load_steps=65 format=3 uid="uid://cootarwb44vvh"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_qkymk"] [ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_二楼.gd" id="2_4dg6u"] @@ -26,6 +26,7 @@ [ext_resource type="SpriteFrames" uid="uid://c218xrr85jdc7" path="res://asset/art/gif/c03_小小小蝶上楼道/c03_小小小蝶上楼道_frames.tres" id="13_6iuix"] [ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="14_7x2h6"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="14_k01ve"] +[ext_resource type="AudioStream" uid="uid://oya48ab6e3ye" path="res://asset/audio/sfx/旧版/child/小孩从远到近跑步.wav" id="14_lipxo"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="14_och2w"] [ext_resource type="SpriteFrames" uid="uid://b0icyhxpj16tv" path="res://asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres" id="15_k01ve"] [ext_resource type="Texture2D" uid="uid://1pr32tkx4ttl" path="res://asset/art/scene/c02/s03_公寓一楼院子/e_煤油灯座.png" id="16_osg51"] @@ -835,6 +836,10 @@ animations = [{ "speed": 10.0 }] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_2rktm"] +resource_local_to_scene = true +size = Vector2(20, 400) + [sub_resource type="RectangleShape2D" id="RectangleShape2D_lh55k"] resource_local_to_scene = true size = Vector2(20, 70) @@ -895,7 +900,7 @@ script = ExtResource("2_4dg6u") debug_global_data = Dictionary[String, Variant]({ "c02_2f_xchan_run_away": 0, "c02_ball_game_stage": 1, -"c02_burning_end_stage": 2, +"c02_burning_end_stage": 1, "c02_madman_hitwall": false, "c02_mouse_follow_player": false, "c02_pliers_to_ball": false, @@ -1006,62 +1011,62 @@ prop_key = "prop_2014钥匙" [node name="楼梯蜡烛" type="Node2D" parent="Ground/DeployLayer" index="5"] -[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛"] -self_modulate = Color(0.611765, 0.611765, 0.611765, 1) -position = Vector2(777.8, -35.3828) -sprite_frames = SubResource("SpriteFrames_lipxo") -autoplay = "default" - -[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛"] -position = Vector2(0, -12.8172) +[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"] +position = Vector2(777.8, -48.2) color = Color(0.999971, 0.912551, 0.842208, 1) energy = 1.2 blend_mode = 2 texture = ExtResource("11_2rktm") texture_scale = 0.3 -[node name="小蜡烛2" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛"] +[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛PointLight2D"] self_modulate = Color(0.611765, 0.611765, 0.611765, 1) -position = Vector2(823, -6) +position = Vector2(0, 12.8172) sprite_frames = SubResource("SpriteFrames_lipxo") autoplay = "default" -[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛2"] -position = Vector2(0, -12.8172) +[node name="小蜡烛PointLight2D2" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"] +position = Vector2(823, -18.8172) color = Color(0.999971, 0.912551, 0.842208, 1) energy = 1.2 blend_mode = 2 texture = ExtResource("11_2rktm") texture_scale = 0.3 -[node name="小蜡烛3" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛"] +[node name="小蜡烛2" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛PointLight2D2"] self_modulate = Color(0.611765, 0.611765, 0.611765, 1) -position = Vector2(774, 3) +position = Vector2(0, 12.8172) sprite_frames = SubResource("SpriteFrames_lipxo") autoplay = "default" -[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛3"] -position = Vector2(0, -12.8172) +[node name="小蜡烛PointLight2D3" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"] +position = Vector2(774, -9.8172) color = Color(0.999971, 0.912551, 0.842208, 1) energy = 1.2 blend_mode = 2 texture = ExtResource("11_2rktm") texture_scale = 0.3 -[node name="小蜡烛4" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛"] +[node name="小蜡烛3" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛PointLight2D3"] self_modulate = Color(0.611765, 0.611765, 0.611765, 1) -position = Vector2(824, 56) +position = Vector2(0, 12.8172) sprite_frames = SubResource("SpriteFrames_lipxo") autoplay = "default" -[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛4"] -position = Vector2(0, -12.8172) +[node name="小蜡烛PointLight2D4" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"] +position = Vector2(824, 43.1828) color = Color(0.999971, 0.912551, 0.842208, 1) energy = 1.2 blend_mode = 2 texture = ExtResource("11_2rktm") texture_scale = 0.3 +[node name="小蜡烛4" type="AnimatedSprite2D" parent="Ground/DeployLayer/楼梯蜡烛/小蜡烛PointLight2D4"] +self_modulate = Color(0.611765, 0.611765, 0.611765, 1) +position = Vector2(0, 12.8172) +sprite_frames = SubResource("SpriteFrames_lipxo") +autoplay = "default" + [node name="Pro小小蝶上楼" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_p6da7")] position = Vector2(953, 30) sprite_frames = ExtResource("13_6iuix") @@ -1078,13 +1083,28 @@ move_configs = Array[Dictionary]([{ }]) debug_mov_animation = "小小小蝶动画(跑)" +[node name="Sfx2D脚步声" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/Pro小小蝶上楼"] +process_mode = 1 +stream = ExtResource("14_lipxo") +max_distance = 1000.0 +attenuation = 1.31951 +bus = &"game_sfx" +script = ExtResource("14_7x2h6") +metadata/_custom_type_script = "uid://wapo47a1oddf" + [node name="Note楼梯杂物堆" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_h3h1a")] position = Vector2(801, -77) texture = ExtResource("7_v3hjg") -sign_mark_offset = Vector2(0, 12.34) +sign_mark_offset = Vector2(0, 1.47) title_filter = "c02" note_key = "c02_二楼楼梯杂物堆" +[node name="Sign" parent="Ground/DeployLayer/Note楼梯杂物堆" index="1"] +sign_mark_offset = Vector2(0, 1.47) + +[node name="CollisionShape2D" parent="Ground/DeployLayer/Note楼梯杂物堆/Area2D" index="0"] +shape = SubResource("RectangleShape2D_2rktm") + [node name="煤油灯" parent="Ground/DeployLayer" index="8" instance=ExtResource("5_3p5ta")] position = Vector2(616, -14) ground_light_texture = ExtResource("8_7x2h6") @@ -1220,8 +1240,7 @@ autostart = false action_configs = Array[Dictionary]([{ "animation_intro": &"胖子呼吸", &"animation_next": "胖子走路", -"animation_wait_time": 0.0, -&"intro_loop": 6 +&"intro_loop": 5 }]) move_configs = Array[Dictionary]([{ "animation": "胖子走路", @@ -1248,14 +1267,11 @@ animation = &"小婵捂脸" autostart = false action_configs = Array[Dictionary]([{ "animation_intro": "小婵捂脸", -&"animation_next": "小婵呼吸", -"animation_wait_time": 0.0, -"intro_loop": 1 +&"animation_next": "小婵呼吸" }, { "animation_intro": &"小婵呼吸", &"animation_next": "小婵走路", -"animation_wait_time": 0.0, -&"intro_loop": 8 +&"intro_loop": 7 }]) move_configs = Array[Dictionary]([{ "animation": "小婵走路", @@ -1276,8 +1292,7 @@ autostart = false action_configs = Array[Dictionary]([{ "animation_intro": &"方瞎子呼吸-右", &"animation_next": "方瞎子走路-左", -"animation_wait_time": 0.0, -&"intro_loop": 7 +&"intro_loop": 6 }]) move_configs = Array[Dictionary]([{ "animation": "方瞎子走路-左", @@ -1394,5 +1409,6 @@ energy = 0.9 blend_mode = 1 [editable path="Ground"] +[editable path="Ground/DeployLayer/Note楼梯杂物堆"] [editable path="Ground/DeployLayer/煤油灯"] [editable path="Ground/DeployLayer/Interactable老鼠洞"] diff --git a/scene/ground/scene/c02/s09_裂缝.tscn b/scene/ground/scene/c02/s09_裂缝.tscn index 94a49742..28b7a157 100644 --- a/scene/ground/scene/c02/s09_裂缝.tscn +++ b/scene/ground/scene/c02/s09_裂缝.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=56 format=4 uid="uid://ryups1dnwdto"] +[gd_scene load_steps=58 format=4 uid="uid://ryups1dnwdto"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_o0m5w"] [ext_resource type="Script" uid="uid://beqnywn1dlnax" path="res://scene/ground/scene/c02/s09_裂缝.gd" id="2_34a6f"] @@ -170,6 +170,18 @@ fill = 1 fill_from = Vector2(0.5, 0.5) fill_to = Vector2(1, 1) +[sub_resource type="Gradient" id="Gradient_dv46s"] +offsets = PackedFloat32Array(0, 0.713622, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.831373, 0.831373, 0.831373, 0, 1, 1, 1, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_4uwnc"] +gradient = SubResource("Gradient_dv46s") +width = 200 +height = 200 +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(1, 1) + [node name="S09" type="Node2D"] metadata/_edit_horizontal_guides_ = [-120.0] @@ -184,7 +196,7 @@ debug_global_data = Dictionary[String, Variant]({ "c02_counter_pushed_out": false, "c02_counter_x": 100.0, "enabled_items": {}, -"player_x": 4500.0 +"player_x": 2000.0 }) debug_ground_data = Dictionary[String, Variant]({ "Ambush剪影指天": { @@ -731,7 +743,7 @@ texture = ExtResource("16_7mvsg") position = Vector2(637.5, -19) sprite_frames = ExtResource("21_kpfk1") animation = &"剪影人物床_呼吸" -frame = 3 +frame = 2 action_configs = Array[Dictionary]([{ "animation_intro": "剪影人物床_指天", &"animation_next": "剪影人物床_指天呼吸", @@ -857,45 +869,73 @@ energy = 1.7 range_item_cull_mask = 5 texture = SubResource("GradientTexture2D_xbdgx") -[node name="PointLight2D锅打光" type="PointLight2D" parent="Ground/AmbientLayer" index="7"] +[node name="PointLight2D周边眼睛打光" type="PointLight2D" parent="Ground/AmbientLayer" index="7"] +position = Vector2(1893, -66) +color = Color(0.955664, 0.335062, 0.346781, 1) +energy = 0.7 +range_item_cull_mask = 5 +texture = SubResource("GradientTexture2D_4uwnc") + +[node name="PointLight2D周边眼睛打光2" type="PointLight2D" parent="Ground/AmbientLayer" index="8"] +position = Vector2(1684, -30) +color = Color(0.955664, 0.335062, 0.346781, 1) +energy = 0.7 +range_item_cull_mask = 5 +texture = SubResource("GradientTexture2D_4uwnc") + +[node name="PointLight2D周边眼睛打光3" type="PointLight2D" parent="Ground/AmbientLayer" index="9"] +position = Vector2(1425, -29) +color = Color(0.955664, 0.335062, 0.346781, 1) +energy = 0.7 +range_item_cull_mask = 5 +texture = SubResource("GradientTexture2D_4uwnc") + +[node name="PointLight2D周边眼睛打光4" type="PointLight2D" parent="Ground/AmbientLayer" index="10"] +position = Vector2(1217, -49) +color = Color(0.955664, 0.335062, 0.346781, 1) +energy = 0.7 +range_item_cull_mask = 5 +texture = SubResource("GradientTexture2D_4uwnc") + +[node name="PointLight2D锅打光" type="PointLight2D" parent="Ground/AmbientLayer" index="11"] position = Vector2(2447, -69) range_item_cull_mask = 2 texture = ExtResource("32_dv46s") texture_scale = 1.5 -[node name="PointLight2D独立打光" type="PointLight2D" parent="Ground/AmbientLayer" index="8"] +[node name="PointLight2D独立打光" type="PointLight2D" parent="Ground/AmbientLayer" index="12"] position = Vector2(2440, -45) color = Color(0.854488, 0.195138, 0.240125, 1) range_item_cull_mask = 32 texture = ExtResource("32_dv46s") -[node name="PointLight2D独立打光3" type="PointLight2D" parent="Ground/AmbientLayer" index="9"] +[node name="PointLight2D独立打光3" type="PointLight2D" parent="Ground/AmbientLayer" index="13"] position = Vector2(669, -45) color = Color(0.854488, 0.195138, 0.240125, 1) energy = 1.9 range_item_cull_mask = 5 texture = ExtResource("32_dv46s") -[node name="PointLight2D独立打光4" type="PointLight2D" parent="Ground/AmbientLayer" index="10"] +[node name="PointLight2D独立打光4" type="PointLight2D" parent="Ground/AmbientLayer" index="14"] position = Vector2(318, -36) color = Color(0.854488, 0.195138, 0.240125, 1) energy = 2.5 range_item_cull_mask = 5 texture = ExtResource("32_dv46s") -[node name="ParticalsAsh" parent="Ground/AmbientLayer" index="11" instance=ExtResource("7_4a1t6")] +[node name="ParticalsAsh" parent="Ground/AmbientLayer" index="15" instance=ExtResource("7_4a1t6")] position = Vector2(1091, 1) -[node name="ParticalsAsh2" parent="Ground/AmbientLayer" index="12" instance=ExtResource("7_4a1t6")] +[node name="ParticalsAsh2" parent="Ground/AmbientLayer" index="16" instance=ExtResource("7_4a1t6")] position = Vector2(1715, 5) -[node name="ParticalsAsh3" parent="Ground/AmbientLayer" index="13" instance=ExtResource("7_4a1t6")] +[node name="ParticalsAsh3" parent="Ground/AmbientLayer" index="17" instance=ExtResource("7_4a1t6")] position = Vector2(2622, -9) -[node name="ParticalsAsh5" parent="Ground/AmbientLayer" index="14" instance=ExtResource("7_4a1t6")] +[node name="ParticalsAsh5" parent="Ground/AmbientLayer" index="18" instance=ExtResource("7_4a1t6")] position = Vector2(2782, -7) -[node name="ParticalsAsh4" parent="Ground/AmbientLayer" index="15" instance=ExtResource("7_4a1t6")] +[node name="ParticalsAsh4" parent="Ground/AmbientLayer" index="19" instance=ExtResource("7_4a1t6")] position = Vector2(2987, -12) [node name="MainPlayer" parent="Ground" index="5"] @@ -927,7 +967,6 @@ position = Vector2(3421, 25) points = PackedVector2Array(80, 150, 4500.93, 150) [node name="DirectionalLight2D" parent="Ground" index="8"] -visible = false energy = 0.7 blend_mode = 1 diff --git a/scene/ground/scene/c02/s12_盒子猫.tscn b/scene/ground/scene/c02/s12_盒子猫.tscn index 94e9210c..a8a6d282 100644 --- a/scene/ground/scene/c02/s12_盒子猫.tscn +++ b/scene/ground/scene/c02/s12_盒子猫.tscn @@ -63,9 +63,14 @@ animation = &"猫钻进盒子" [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(232, 71) character = "盒子猫" +player_movement_rect = Rect2(37, -158, 363, 316) facing_direction = Vector2(1, 0) [node name="CameraFocusMarker" parent="Ground" index="6"] +limit_left = 0 +limit_top = -158 +limit_right = 564 +limit_bottom = 158 force_offset = Vector2(-20, 0) [node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"] @@ -75,6 +80,7 @@ position = Vector2(3584, -7) points = PackedVector2Array(37, 150, 400, 150) [node name="DirectionalLight2D" parent="Ground" index="8"] +energy = 0.7 blend_mode = 1 [node name="盒子猫CanvasLayer" parent="Ground" instance=ExtResource("4_vv3sh")] diff --git a/scene/ground/script/c02/裂缝议论文字.gd b/scene/ground/script/c02/裂缝议论文字.gd index d6730d7b..95a54b52 100644 --- a/scene/ground/script/c02/裂缝议论文字.gd +++ b/scene/ground/script/c02/裂缝议论文字.gd @@ -32,8 +32,7 @@ func _on_area_entered(_body): var tween = create_tween() tween.tween_property(label, "position:y", 3.0, 0.6).set_trans(Tween.TRANS_BOUNCE) tween.tween_property(label, "position:y", 0.0, 0.6).set_trans(Tween.TRANS_BOUNCE) - tween.set_loops(10) - create_tween().tween_property(label, "modulate:a", 0.0, 8.0) + tween.set_loops(1000) func _update_text(): label.text = "[pulse ease=2.0 freq=2 color=#000000cf] " + tr(key) diff --git a/scene/little_game/弹珠游戏/ball.gd b/scene/little_game/弹珠游戏/ball.gd index dede1c72..e59d2b09 100644 --- a/scene/little_game/弹珠游戏/ball.gd +++ b/scene/little_game/弹珠游戏/ball.gd @@ -2,8 +2,8 @@ extends RigidBody2D -signal hit_ball -signal hit_ball_callback +signal hit_ball_touched +signal hit_ball_finished signal hit_boundary @export_enum("1", "2", "3", "4", "5", "6", "7") var id := "1": @@ -61,6 +61,7 @@ func hide_away(): visible = false collision_shape.disabled = true + func ease_out(): collision_shape.disabled = true create_tween().tween_property(self, "modulate:a", 0.0, 0.5) @@ -77,27 +78,39 @@ func _set_up_texture(): sprite2d.texture = texture_dict[id] -var recycling = false +var shoot_count := 0 +var shooted_instances = {} func _on_body_entered(node: Node): - if GlobalConfig.DEBUG: - print("[debug] hit node", node.get_path()) - if recycling or not is_shooter: + if not is_shooter: return - recycling = true - var tween = create_tween() + var tween if node is StaticBody2D: - tween.tween_property(self, "modulate:a", 0.0, 1.0) - tween.tween_callback(hit_boundary.emit) - tween.tween_callback(queue_free) + if shoot_count == 0: + tween = create_tween() + tween.tween_property(self, "modulate:a", 0.0, 1.0) + tween.tween_callback(hit_boundary.emit) + tween.tween_callback(queue_free) return - hit_ball.emit() + # 过滤抖动/重复碰撞 + var instance_id = node.get_instance_id() + if shooted_instances.has(instance_id): + return + print("[debug] first hit node", node.get_path()) + shooted_instances[instance_id] = true + shoot_count += 1 + hit_ball_touched.emit() + tween = create_tween() tween.tween_property(self, "modulate:a", 0.0, 1.5) tween.parallel().tween_property(node, "modulate:a", 0.0, 1.5) - tween.tween_callback(hit_ball_callback.emit) + tween.tween_callback(hit_ball_finished.emit) tween.tween_callback(node.queue_free) tween.tween_callback(queue_free) + print("[ball] shoot count: ", shoot_count) + if shoot_count >= 3: + #TODO 连续射中三个成就 + pass func _process(_delta: float) -> void: diff --git a/scene/little_game/弹珠游戏/弹珠游戏.gd b/scene/little_game/弹珠游戏/弹珠游戏.gd index 782fb3e0..bff2e1fa 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.gd +++ b/scene/little_game/弹珠游戏/弹珠游戏.gd @@ -128,8 +128,8 @@ func reload_hand_ball() -> void: pivot.move_child(ball, 0) ball.name = "Ball" # ball.rand_id() - ball.hit_ball.connect(_on_hit_ball) - ball.hit_ball_callback.connect(_on_hit_ball_callback) + ball.hit_ball_touched.connect(_on_hit_ball) + ball.hit_ball_finished.connect(_on_hit_ball_finished) ball.hit_boundary.connect(_on_hit_boundary) @@ -198,7 +198,7 @@ func _on_hit_ball(): sfx_shoot.stop() -func _on_hit_ball_callback(): +func _on_hit_ball_finished(): reload_hand_ball() hit_count += 1 if round_id == 0: diff --git a/scene/main.gd b/scene/main.gd index 778c26e5..9201e109 100644 --- a/scene/main.gd +++ b/scene/main.gd @@ -48,3 +48,6 @@ func tween_vignette(ratio := 0.5, duration := 0.3, color := Color.RED): vignette_tween.parallel().tween_property( vignette.material, "shader_parameter/vignette_rgb", color, duration ) + + +