diff --git a/README.md b/README.md index 81afef80..abe64ed5 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,17 @@ ProAnimatedSprite2D,增强 AnimatedSprite2D 的表现,在其基础上增加 - 正常游戏:Main -> GroundLoader -> Ground - 开发阶段:直接编辑 Ground +### 整体说明 + +GroundLoader 加载/切换 Ground 时,分为上下两段转场: +- 上半段(旧场景变黑):先暂停旧 ground,即在转场黑屏过程中旧的 ground 会 paused +- 下半段(新场景出现):先暂停,在完全出现后再运行 +【特殊注意⚠️】 +- AnimationPlayer 的 process_mode 并非 inderited,而是 pausable。这意味着 AnimationPlayer 的 _on_ground_ready 在转场时仍旧可以直接运行。 +- 同样的还有 Sfx/Sfx2D,它们仍旧可以播放音频直到上半段转场结束 +- 一些 npc、player 大运行脚本会被中断。如果想让它们仍旧运行,需设置为 pausable。 + + ### Ground 说明 #### AnimationPlayer:每个 Ground 都有一个 AnimationPlayer,脚本继承自定义的 AnimationRoot diff --git a/asset/art/gif/c02_杂项/c02_杂项_frames.tres b/asset/art/gif/c02_杂项/c02_杂项_frames.tres index 7ded3316..13c82b98 100644 --- a/asset/art/gif/c02_杂项/c02_杂项_frames.tres +++ b/asset/art/gif/c02_杂项/c02_杂项_frames.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpriteFrames" load_steps=112 format=3 uid="uid://3nas025c2c5u"] +[gd_resource type="SpriteFrames" load_steps=119 format=3 uid="uid://3nas025c2c5u"] [ext_resource type="Texture2D" uid="uid://dwhh5uck24og4" path="res://asset/art/gif/c02_杂项/听纸杯/0.png" id="1_jpxok"] [ext_resource type="Texture2D" uid="uid://b7gqorave0ung" path="res://asset/art/gif/c02_杂项/f3/0.png" id="1_o3ytw"] @@ -97,10 +97,17 @@ [ext_resource type="Texture2D" uid="uid://bvw60yttop86o" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/53.png" id="70_uepmd"] [ext_resource type="Texture2D" uid="uid://b84ubyyn183xu" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/54.png" id="71_5y0bi"] [ext_resource type="Texture2D" uid="uid://dmbrwa48pj377" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/55.png" id="72_2d8k0"] +[ext_resource type="Texture2D" uid="uid://bodns08vrqosg" path="res://asset/art/gif/c02_杂项/小蝉背对转头/0.png" id="73_6h0n3"] +[ext_resource type="Texture2D" uid="uid://8rlyfr3fsy2h" path="res://asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png" id="73_aceu7"] [ext_resource type="Texture2D" uid="uid://cccvhj6lo0hen" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/56.png" id="73_u1khd"] +[ext_resource type="Texture2D" uid="uid://w27e751y7rj1" path="res://asset/art/gif/c02_杂项/小蝉背对转头/1.png" id="74_1ru8v"] +[ext_resource type="Texture2D" uid="uid://b8i1d3455t41a" path="res://asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png" id="74_3er7a"] [ext_resource type="Texture2D" uid="uid://dyp0q0a6lcswk" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/57.png" id="74_csbcu"] +[ext_resource type="Texture2D" uid="uid://cavhwdgmc3cpb" path="res://asset/art/gif/c02_杂项/小蝉背对转头/2.png" id="75_aceu7"] [ext_resource type="Texture2D" uid="uid://dsom0pwipi4gm" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/58.png" id="75_kdvnj"] +[ext_resource type="Texture2D" uid="uid://cacqeynmqya6m" path="res://asset/art/gif/c02_杂项/小蝉背对转头/3.png" id="76_3er7a"] [ext_resource type="Texture2D" uid="uid://bdhj86py8gca7" path="res://asset/art/gif/c02_杂项/小婵晃脚掉鞋/59.png" id="76_0647m"] +[ext_resource type="Texture2D" uid="uid://dtt5y6ujnrb1r" path="res://asset/art/gif/c02_杂项/小蝉背对转头/4.png" id="77_10bib"] [ext_resource type="Texture2D" uid="uid://bkfxnc8jc6ad" path="res://asset/art/gif/c02_杂项/火苗/0.png" id="87_tgdu0"] [ext_resource type="Texture2D" uid="uid://dw1abmepuchpf" path="res://asset/art/gif/c02_杂项/火苗/1.png" id="88_i5ln4"] [ext_resource type="Texture2D" uid="uid://ixgcovre8mwg" path="res://asset/art/gif/c02_杂项/火苗/2.png" id="89_eshku"] @@ -346,6 +353,49 @@ animations = [{ "speed": 30.0 }, { "frames": [{ +"duration": 1.0, +"texture": ExtResource("73_aceu7") +}, { +"duration": 1.0, +"texture": ExtResource("74_3er7a") +}], +"loop": true, +"name": &"小蝉背对呼吸帧", +"speed": 1.7 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("73_6h0n3") +}, { +"duration": 1.0, +"texture": ExtResource("74_1ru8v") +}, { +"duration": 1.0, +"texture": ExtResource("75_aceu7") +}, { +"duration": 1.0, +"texture": ExtResource("76_3er7a") +}, { +"duration": 1.0, +"texture": ExtResource("77_10bib") +}, { +"duration": 1.0, +"texture": ExtResource("76_3er7a") +}, { +"duration": 1.0, +"texture": ExtResource("77_10bib") +}, { +"duration": 1.0, +"texture": ExtResource("76_3er7a") +}, { +"duration": 1.0, +"texture": ExtResource("77_10bib") +}], +"loop": false, +"name": &"小蝉背对转头", +"speed": 2.0 +}, { +"frames": [{ "duration": 6.0, "texture": ExtResource("2_wu63b") }, { diff --git a/asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif b/asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif new file mode 100644 index 00000000..82ded3d8 Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif differ diff --git a/asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif.import b/asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif.import new file mode 100644 index 00000000..f1ab8baa --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif.import @@ -0,0 +1,14 @@ +[remap] + +importer="gif.animated.texture.plugin" +type="SpriteFrames" +uid="uid://d2htj1xiwm8ba" +path="res://.godot/imported/小蝉背对呼吸帧.gif-c49f1c826a8b2834adde29d8c1b21dfe.tres" + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对呼吸帧.gif" +dest_files=["res://.godot/imported/小蝉背对呼吸帧.gif-c49f1c826a8b2834adde29d8c1b21dfe.tres"] + +[params] + diff --git a/asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png new file mode 100644 index 00000000..229643fc Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png differ diff --git a/asset/art/prop/c01/信件碎片.png.import b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png.import similarity index 67% rename from asset/art/prop/c01/信件碎片.png.import rename to asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png.import index f53abda5..a7e3f0ff 100644 --- a/asset/art/prop/c01/信件碎片.png.import +++ b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://oh4e48nxm4j6" -path="res://.godot/imported/信件碎片.png-148d8c76f1c905d18bd18b04343030cd.ctex" +uid="uid://8rlyfr3fsy2h" +path="res://.godot/imported/0.png-4489936c75353f783f2a5f2b08612d0c.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/prop/c01/信件碎片.png" -dest_files=["res://.godot/imported/信件碎片.png-148d8c76f1c905d18bd18b04343030cd.ctex"] +source_file="res://asset/art/gif/c02_杂项/小蝉背对呼吸帧/0.png" +dest_files=["res://.godot/imported/0.png-4489936c75353f783f2a5f2b08612d0c.ctex"] [params] diff --git a/asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png new file mode 100644 index 00000000..1e476699 Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png differ diff --git a/asset/art/little_game/拼凑信件/完整信件.png.import b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png.import similarity index 66% rename from asset/art/little_game/拼凑信件/完整信件.png.import rename to asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png.import index bf55a1b3..0656b803 100644 --- a/asset/art/little_game/拼凑信件/完整信件.png.import +++ b/asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://glrm37tra7v5" -path="res://.godot/imported/完整信件.png-cfd076a390551cbdbbaeee723f1d98cc.ctex" +uid="uid://b8i1d3455t41a" +path="res://.godot/imported/1.png-c7dd20e965fd4eabf11a16350cd0785c.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/little_game/拼凑信件/完整信件.png" -dest_files=["res://.godot/imported/完整信件.png-cfd076a390551cbdbbaeee723f1d98cc.ctex"] +source_file="res://asset/art/gif/c02_杂项/小蝉背对呼吸帧/1.png" +dest_files=["res://.godot/imported/1.png-c7dd20e965fd4eabf11a16350cd0785c.ctex"] [params] diff --git a/asset/art/gif/c02_杂项/小蝉背对转头.gif b/asset/art/gif/c02_杂项/小蝉背对转头.gif new file mode 100644 index 00000000..a8167754 Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对转头.gif differ diff --git a/asset/art/gif/c02_杂项/小蝉背对转头.gif.import b/asset/art/gif/c02_杂项/小蝉背对转头.gif.import new file mode 100644 index 00000000..fe6618e5 --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对转头.gif.import @@ -0,0 +1,14 @@ +[remap] + +importer="gif.animated.texture.plugin" +type="SpriteFrames" +uid="uid://bi2uhn00cm7tq" +path="res://.godot/imported/小蝉背对转头.gif-a231e948713f4b3f108ebad70cb8c2a1.tres" + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对转头.gif" +dest_files=["res://.godot/imported/小蝉背对转头.gif-a231e948713f4b3f108ebad70cb8c2a1.tres"] + +[params] + diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/0.png b/asset/art/gif/c02_杂项/小蝉背对转头/0.png new file mode 100644 index 00000000..7cddd6da Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对转头/0.png differ diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/0.png.import b/asset/art/gif/c02_杂项/小蝉背对转头/0.png.import new file mode 100644 index 00000000..e0daddb2 --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对转头/0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bodns08vrqosg" +path="res://.godot/imported/0.png-0117fddf32292cc5931093e4a92929ad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对转头/0.png" +dest_files=["res://.godot/imported/0.png-0117fddf32292cc5931093e4a92929ad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/1.png b/asset/art/gif/c02_杂项/小蝉背对转头/1.png new file mode 100644 index 00000000..645facef Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对转头/1.png differ diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/1.png.import b/asset/art/gif/c02_杂项/小蝉背对转头/1.png.import new file mode 100644 index 00000000..9341c78a --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对转头/1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://w27e751y7rj1" +path="res://.godot/imported/1.png-98ab9505ace31c28a77e30c1e7464cf5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对转头/1.png" +dest_files=["res://.godot/imported/1.png-98ab9505ace31c28a77e30c1e7464cf5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/2.png b/asset/art/gif/c02_杂项/小蝉背对转头/2.png new file mode 100644 index 00000000..0c2d83d8 Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对转头/2.png differ diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/2.png.import b/asset/art/gif/c02_杂项/小蝉背对转头/2.png.import new file mode 100644 index 00000000..337efad4 --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对转头/2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cavhwdgmc3cpb" +path="res://.godot/imported/2.png-89111e83037db31c51545d8ac4898e77.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对转头/2.png" +dest_files=["res://.godot/imported/2.png-89111e83037db31c51545d8ac4898e77.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/3.png b/asset/art/gif/c02_杂项/小蝉背对转头/3.png new file mode 100644 index 00000000..c3ad1edc Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对转头/3.png differ diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/3.png.import b/asset/art/gif/c02_杂项/小蝉背对转头/3.png.import new file mode 100644 index 00000000..bdb27981 --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对转头/3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cacqeynmqya6m" +path="res://.godot/imported/3.png-dd8f6a4cc7b0e3a091c3a2693475c733.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对转头/3.png" +dest_files=["res://.godot/imported/3.png-dd8f6a4cc7b0e3a091c3a2693475c733.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/4.png b/asset/art/gif/c02_杂项/小蝉背对转头/4.png new file mode 100644 index 00000000..0c2d83d8 Binary files /dev/null and b/asset/art/gif/c02_杂项/小蝉背对转头/4.png differ diff --git a/asset/art/gif/c02_杂项/小蝉背对转头/4.png.import b/asset/art/gif/c02_杂项/小蝉背对转头/4.png.import new file mode 100644 index 00000000..2aaf178a --- /dev/null +++ b/asset/art/gif/c02_杂项/小蝉背对转头/4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtt5y6ujnrb1r" +path="res://.godot/imported/4.png-a111198b428d3667a44b48b41d711ec5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/gif/c02_杂项/小蝉背对转头/4.png" +dest_files=["res://.godot/imported/4.png-a111198b428d3667a44b48b41d711ec5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/little_game/拼凑信件/信件碎片.png b/asset/art/little_game/拼凑信件/信件碎片.png old mode 100755 new mode 100644 index 4e75f923..ec00bf81 Binary files a/asset/art/little_game/拼凑信件/信件碎片.png and b/asset/art/little_game/拼凑信件/信件碎片.png differ diff --git a/asset/art/little_game/拼凑信件/信件碎片.png.import b/asset/art/little_game/拼凑信件/信件碎片.png.import index 0810c74a..04eafd6f 100644 --- a/asset/art/little_game/拼凑信件/信件碎片.png.import +++ b/asset/art/little_game/拼凑信件/信件碎片.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://duxdnw1uhlpm5" +uid="uid://oh4e48nxm4j6" path="res://.godot/imported/信件碎片.png-c35bdb7240fb280003e7b3bca88b316c.ctex" metadata={ "vram_texture": false diff --git a/asset/art/little_game/拼凑信件/完整信件.png b/asset/art/little_game/拼凑信件/完整信件.png deleted file mode 100755 index 8374c772..00000000 Binary files a/asset/art/little_game/拼凑信件/完整信件.png and /dev/null differ diff --git a/asset/art/prop/c01/信件碎片.png b/asset/art/prop/c01/信件碎片.png deleted file mode 100644 index ec00bf81..00000000 Binary files a/asset/art/prop/c01/信件碎片.png and /dev/null differ diff --git a/asset/audio/专用/衔蝶_主菜单music人声版.mp3 b/asset/audio/专用/衔蝶_主菜单music人声版.mp3 new file mode 100644 index 00000000..1be6f197 Binary files /dev/null and b/asset/audio/专用/衔蝶_主菜单music人声版.mp3 differ diff --git a/asset/audio/专用/衔蝶_主菜单music人声版.mp3.import b/asset/audio/专用/衔蝶_主菜单music人声版.mp3.import new file mode 100644 index 00000000..829148ed --- /dev/null +++ b/asset/audio/专用/衔蝶_主菜单music人声版.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://brs150xgqnyd5" +path="res://.godot/imported/衔蝶_主菜单music人声版.mp3-b7e65591aa72232d8d0f92d1a8a3714b.mp3str" + +[deps] + +source_file="res://asset/audio/专用/衔蝶_主菜单music人声版.mp3" +dest_files=["res://.godot/imported/衔蝶_主菜单music人声版.mp3-b7e65591aa72232d8d0f92d1a8a3714b.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/audio/专用/衔蝶_主菜单music人声版.wav b/asset/audio/专用/衔蝶_主菜单music人声版.wav new file mode 100644 index 00000000..0644f0b0 Binary files /dev/null and b/asset/audio/专用/衔蝶_主菜单music人声版.wav differ diff --git a/asset/audio/专用/衔蝶_主菜单music人声版.wav.import b/asset/audio/专用/衔蝶_主菜单music人声版.wav.import new file mode 100644 index 00000000..aab511b6 --- /dev/null +++ b/asset/audio/专用/衔蝶_主菜单music人声版.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c200iyw8iv55e" +path="res://.godot/imported/衔蝶_主菜单music人声版.wav-5ae06fe6ed3e2a9c602f4ae79b107028.sample" + +[deps] + +source_file="res://asset/audio/专用/衔蝶_主菜单music人声版.wav" +dest_files=["res://.godot/imported/衔蝶_主菜单music人声版.wav-5ae06fe6ed3e2a9c602f4ae79b107028.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/专用/衔蝶_主菜单music琵琶版.wav b/asset/audio/专用/衔蝶_主菜单music琵琶版.wav new file mode 100644 index 00000000..7dfdab9d Binary files /dev/null and b/asset/audio/专用/衔蝶_主菜单music琵琶版.wav differ diff --git a/asset/audio/专用/衔蝶_主菜单music琵琶版.wav.import b/asset/audio/专用/衔蝶_主菜单music琵琶版.wav.import new file mode 100644 index 00000000..7f05a2d2 --- /dev/null +++ b/asset/audio/专用/衔蝶_主菜单music琵琶版.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bos75l685w3q5" +path="res://.godot/imported/衔蝶_主菜单music琵琶版.wav-3a558322426c75bbd7f8b9678a4c9187.sample" + +[deps] + +source_file="res://asset/audio/专用/衔蝶_主菜单music琵琶版.wav" +dest_files=["res://.godot/imported/衔蝶_主菜单music琵琶版.wav-3a558322426c75bbd7f8b9678a4c9187.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3 b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3 new file mode 100644 index 00000000..95dd6a8e Binary files /dev/null and b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3 differ diff --git a/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3.import b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3.import new file mode 100644 index 00000000..9b660701 --- /dev/null +++ b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://bkiklof028v51" +path="res://.godot/imported/衔蝶大结局_摇啊摇_Music Mastered.mp3-4359c1f8cc426c7e7a1aa0d907363b73.mp3str" + +[deps] + +source_file="res://asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.mp3" +dest_files=["res://.godot/imported/衔蝶大结局_摇啊摇_Music Mastered.mp3-4359c1f8cc426c7e7a1aa0d907363b73.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav new file mode 100644 index 00000000..6cabb3b7 Binary files /dev/null and b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav differ diff --git a/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav.import b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav.import new file mode 100644 index 00000000..93fcd41a --- /dev/null +++ b/asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://diucbqquysu0s" +path="res://.godot/imported/衔蝶大结局_摇啊摇_Music Mastered.wav-9493f885fd6384421abe5ec1da685954.sample" + +[deps] + +source_file="res://asset/audio/专用/衔蝶大结局_摇啊摇_Music Mastered.wav" +dest_files=["res://.godot/imported/衔蝶大结局_摇啊摇_Music Mastered.wav-9493f885fd6384421abe5ec1da685954.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 45ff434d..1f1ee4b9 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -11,6 +11,7 @@ c02_小蝉寻人启事_脸部破碎,寻人启事...画像和字迹都看不清 setting_画册,画册(G),,,,, notes_干掉的血迹,干掉的血迹,,,,, c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,, +prop_奇怪的肉_说明,,,,,, index_新游戏,新游戏,,,,,New Game index_继续游戏,继续游戏,,,,,Resume index_退出游戏,退出游戏,,,,,Exit @@ -65,9 +66,9 @@ prop_银元_说明,一枚“袁大头”银元,中华民国十年造。,,,,, prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],, prop_院长的信_说明,浦育院院长秦阳
民国21年11月20日
致吕萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国十九年十月十五日
公寓地址 芦昌路26弄3号,,,,, prop_火柴,火柴,,,[#texture=c02/火柴.png],, -prop_火柴_说明,火柴_说明,,,[#texture=c02/火柴.png],, +prop_火柴_说明,盒里还剩下很多根,稍微有些受潮,,,[#texture=c02/火柴.png],, prop_小猫玩具的脑袋,小猫玩具的脑袋,,,[#texture=c02/新小猫头.png],, -prop_小猫玩具的脑袋_说明,,,,,, +prop_小猫玩具的脑袋_说明,某个玩具的部件,有些眼熟,,,,, prop_无头小猫玩具,无头小猫玩具,,,[#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png],, prop_无头小猫玩具_说明,没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练,,,,, prop_小猫玩具完整,小猫玩具,,,[#texture=c02/新小猫全身.png],, @@ -84,8 +85,7 @@ prop_小鞋子2,小鞋子(二),,,[#texture=c02/小鞋子2.png],, prop_小鞋子2_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,, prop_麻将,麻将,,,[#texture=c02/麻将.png],, prop_麻将_说明,这块麻将上雕着一朵圆形的花,,,,, -prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],, -prop_奇怪的肉_说明,,,,,, +prop_奇怪的肉,奇怪的肉 这块肉脂肪黄黄的...[ID:prop_奇怪的肉_说明],,,[#texture=c02/奇怪的肉.png],, prop_弹珠,弹珠,,,[#texture=c02/弹珠.png],, prop_弹珠_说明,一种玻璃小球,孩子们常用它来进行弹子游戏,,,,, prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],, @@ -171,6 +171,7 @@ c02_二楼血脚印,又是这种小小尖尖的血脚印...,,,,, c02_离开红色演出,刚才那些...到底是怎么回事?,,,,, c02_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」
咦,这口诀是谁教我的来着...,,,,, c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,, +c02_小蝉盒子特写,我会在盒子里一直陪着你 :3,,,,, c02_小蝉恨他们,我恨他们!,,,,, c02_火灾等待准备,还没准备好点火呢,,,,, c02_霸凌救小蝉开始,啊!我得想办法帮帮那个小女孩...,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index c2920bd1..fac5663a 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -70,9 +70,9 @@ # c02 火柴 [#texture=c02/火柴.png] [ID:prop_火柴] -火柴_说明 [#texture=c02/火柴.png] [ID:prop_火柴_说明] +盒里还剩下很多根,稍微有些受潮 [#texture=c02/火柴.png] [ID:prop_火柴_说明] 小猫玩具的脑袋 [#texture=c02/新小猫头.png] [ID:prop_小猫玩具的脑袋] -[ID:prop_小猫玩具的脑袋_说明] +某个玩具的部件,有些眼熟[ID:prop_小猫玩具的脑袋_说明] 无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具] 没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练 [ID:prop_无头小猫玩具_说明] 小猫玩具 [#texture=c02/新小猫全身.png] [ID:prop_小猫玩具完整] @@ -90,8 +90,7 @@ 麻将 [#texture=c02/麻将.png] [ID:prop_麻将] 这块麻将上雕着一朵圆形的花[ID:prop_麻将_说明] #新鲜的肉 [#texture=c02/新鲜的肉.png] [ID:prop_新鲜的肉] -奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉] -[ID:prop_奇怪的肉_说明] +奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉]这块肉脂肪黄黄的...[ID:prop_奇怪的肉_说明] 弹珠 [#texture=c02/弹珠.png] [ID:prop_弹珠] 一种玻璃小球,孩子们常用它来进行弹子游戏[ID:prop_弹珠_说明] 木头人偶 [#texture=c02/小蝉人偶.png] [ID:prop_木头人偶] @@ -214,6 +213,7 @@ 刚才那些...到底是怎么回事? [ID:c02_离开红色演出] 「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」
咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图] 院长房间里也有一个类似的十字架。[ID:c02_瞎子卧室_十字架] +我会在盒子里一直陪着你 :3 [ID:c02_小蝉盒子特写] 我恨他们![ID:c02_小蝉恨他们] # c02 火灾 还没准备好点火呢 [ID:c02_火灾等待准备] diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index a32c2575..4c63361f 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -76,8 +76,11 @@ func get_lock() -> PlayerReenterLock: return PlayerReenterLock.new() -func lock_player(duration := 0): +func lock_player(duration := 0.0, action := 3, auto_quit := false): get_lock().lock_all(duration) + if action != 3: + # 先 freeze 再 action,否则会重置 action + player_action(action, auto_quit) func unlock_player(): @@ -94,8 +97,9 @@ func unhold_player(): # lock_time: the time to lock the player action. 0 means lock forever, thus the player will be locked until release_player is called. func freeze_player(lock_time: float, action := 3, auto_quit := false) -> void: - player_action(action, auto_quit) + # 先 freeze 再 action,否则会重置 action get_lock().freeze(lock_time) + player_action(action, auto_quit) func release_player(): diff --git a/scene/character/main_player.gd b/scene/character/main_player.gd index 1357db65..db64c774 100644 --- a/scene/character/main_player.gd +++ b/scene/character/main_player.gd @@ -297,9 +297,12 @@ func _on_first_frozen() -> void: # duration: the time to lock the player action. 0 means lock forever, thus the player will be locked until release_player is called. func freeze_player(duration: float, action_code: int, auto_quit: bool) -> void: - player_action(action_code, auto_quit) if reenter_lock: reenter_lock.freeze(duration) + else: + push_error("freeze_player reenter_lock is not set.") + # 先 freeze 再 action,否则会重置 action + player_action(action_code, auto_quit) func release_player(): diff --git a/scene/entity/audio/sfx.gd b/scene/entity/audio/sfx.gd index 714a6e37..5f54d48d 100644 --- a/scene/entity/audio/sfx.gd +++ b/scene/entity/audio/sfx.gd @@ -20,6 +20,7 @@ var scene_sense_player_mov := false func _ready() -> void: bus = &"game_sfx" default_db = volume_db + process_mode = Node.PROCESS_MODE_PAUSABLE if Engine.is_editor_hint(): return finished.connect(_on_finished) diff --git a/scene/entity/audio/sfx2d.gd b/scene/entity/audio/sfx2d.gd index 92727ff9..731f23d8 100644 --- a/scene/entity/audio/sfx2d.gd +++ b/scene/entity/audio/sfx2d.gd @@ -21,6 +21,7 @@ var timer: Timer func _ready() -> void: bus = &"game_sfx" + process_mode = Node.PROCESS_MODE_PAUSABLE finished.connect(_on_finished) timer = Timer.new() timer.autostart = autoplay and loop and loop_round_time > 0.0 and not Engine.is_editor_hint() diff --git a/scene/entity/npc.tscn b/scene/entity/npc.tscn index ebf340c6..bb8765c6 100644 --- a/scene/entity/npc.tscn +++ b/scene/entity/npc.tscn @@ -128,7 +128,6 @@ size = Vector2(35, 100) [node name="Npc" type="AnimatedSprite2D"] light_mask = 5 script = ExtResource("1_jegr2") -snap_to_edge = null collision_width_and_x = Vector2(35, 0) dialogue_title = "" @@ -182,7 +181,7 @@ shape = SubResource("RectangleShape2D_4fuic") [node name="SignSnapper" type="Marker2D" parent="."] unique_name_in_owner = true script = ExtResource("8_7lwt5") -radius = 20.0 +radius = 25.0 walk_to_edge = true action_on_arrived = 4 metadata/_custom_type_script = "uid://cnt01hiw52bmn" diff --git a/scene/entity/pickable.tscn b/scene/entity/pickable.tscn index 35d34492..30d8be46 100644 --- a/scene/entity/pickable.tscn +++ b/scene/entity/pickable.tscn @@ -13,7 +13,6 @@ size = Vector2(20, 60) [node name="Pickable" type="Sprite2D"] script = ExtResource("1_jk1u0") -action_key = null prop_key = "" [node name="Sfx" type="AudioStreamPlayer" parent="."] diff --git a/scene/ground/ground.tscn b/scene/ground/ground.tscn index 7952b7dd..d39d6ba4 100644 --- a/scene/ground/ground.tscn +++ b/scene/ground/ground.tscn @@ -19,6 +19,7 @@ height = 500 script = ExtResource("1_0vrlo") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +process_mode = 1 [node name="PlayerReenterLock" type="Node" parent="."] unique_name_in_owner = true diff --git a/scene/ground/scene/c01/s07_animation.gd b/scene/ground/scene/c01/s07_animation.gd index 98768f3a..b40f0b60 100644 --- a/scene/ground/scene/c01/s07_animation.gd +++ b/scene/ground/scene/c01/s07_animation.gd @@ -66,7 +66,7 @@ func _on_luren_animation_finished() -> void: func _knock_door(): # 6 号动作:敲门 - SceneManager.freeze_player(3.5, 6) + SceneManager.lock_player(3.5, 6) await get_tree().create_timer(2.2).timeout $"敲门音效".play() await get_tree().create_timer(1.2).timeout @@ -86,13 +86,15 @@ func _on_fog_disappear() -> void: func seller_interacted(): bookstore_portal.holding = false # 报童交互 - SceneManager.freeze_player(3.0) + SceneManager.freeze_player(0) seller.play("报童给报纸") # 提前写入 prop 中,防止存档 bug,稍后播放获得动画 - ArchiveManager.archive.prop_inventory.enable_item("prop_信碎片2") + SceneManager.enable_prop_item_silently("prop_信碎片2") await get_tree().create_timer(1.5).timeout $"报童音效".play() SceneManager.pop_os_with_str("c01_s07_获得报纸") + await SceneManager.get_player().os_finished # 播放获得动画 - await get_tree().create_timer(2.0).timeout SceneManager.enable_prop_item("prop_信碎片2") + SceneManager.release_player() + diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index bfd8cdd4..74b36dc6 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -58,7 +58,7 @@ animations = [{ [sub_resource type="RectangleShape2D" id="RectangleShape2D_na2nu"] resource_local_to_scene = true -size = Vector2(25, 130) +size = Vector2(30, 130) [node name="S07" type="Node2D"] @@ -75,6 +75,7 @@ data = { oneshot_animation = "" [node name="环境音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 stream = ExtResource("3_na2nu") volume_db = -4.0 autoplay = true @@ -87,6 +88,7 @@ mode = "场景背景音" metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="chapter_sfx" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 stream = ExtResource("3_c7jb6") volume_db = -5.0 bus = &"game_sfx" @@ -94,6 +96,7 @@ script = ExtResource("4_c7jb6") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="报童音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 stream = ExtResource("5_7sdrt") volume_db = -5.0 bus = &"game_sfx" @@ -101,6 +104,7 @@ script = ExtResource("4_c7jb6") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="敲门音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] +process_mode = 1 stream = ExtResource("6_hwht7") volume_db = -2.0 bus = &"game_sfx" @@ -108,13 +112,14 @@ script = ExtResource("4_c7jb6") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="开门音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="4"] +process_mode = 1 stream = ExtResource("8_sqlmr") volume_db = -4.0 bus = &"game_sfx" script = ExtResource("4_c7jb6") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="BGSprite2D" parent="Ground" index="1"] +[node name="BGSprite2D" parent="Ground" index="2"] texture = SubResource("AtlasTexture_amurr") offset = Vector2(0, -158) @@ -127,7 +132,7 @@ position = Vector2(2233, 13) target_scene = "c01_s08" [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_ulvsd")] -position = Vector2(94, 45) +position = Vector2(94, 56) debug_note = "传送来的位置" portal_name = "1" @@ -140,7 +145,7 @@ animation = &"default" frame = 0 [node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_ulvsd")] -position = Vector2(1731, 25) +position = Vector2(1728, 33) debug_note = "c01_s07 的 2 号门通往书店" portal_name = "2" target_scene = "c01_s08" @@ -150,8 +155,18 @@ holding = true holding_reason_key = "c01_s07_需要报纸" [node name="SfxDefault" parent="Ground/DeployLayer/portal_2" index="0"] +process_mode = 1 volume_db = -2.0 +[node name="SfxOpen" parent="Ground/DeployLayer/portal_2" index="1"] +process_mode = 1 + +[node name="SfxEnter" parent="Ground/DeployLayer/portal_2" index="2"] +process_mode = 1 + +[node name="SfxLocked" parent="Ground/DeployLayer/portal_2" index="3"] +process_mode = 1 + [node name="Sign" parent="Ground/DeployLayer/portal_2" index="4"] enabled = true @@ -162,6 +177,9 @@ offset_bottom = -50.0 [node name="CollisionShape2D" parent="Ground/DeployLayer/portal_2/Area2D" index="0"] shape = SubResource("RectangleShape2D_na2nu") +[node name="SignSnapper" parent="Ground/DeployLayer/portal_2" index="7"] +action_on_arrived = 4 + [node name="背景" type="Sprite2D" parent="Ground/DeployLayer" index="4"] position = Vector2(1084, 5.5) texture = ExtResource("4_8do8y") @@ -188,6 +206,7 @@ action_configs = Array[Dictionary]([{ }]) [node name="Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/陆仁舞刀"] +process_mode = 1 stream = ExtResource("14_c7jb6") volume_db = -2.0 autoplay = true @@ -262,7 +281,7 @@ action = 5 title_filter = "c01" note_key = "c01_s07_书店展柜" -[node name="MainPlayer" parent="Ground" index="4"] +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 103) character = "小小蝶" diff --git a/scene/ground/scene/c01/s08_animation.gd b/scene/ground/scene/c01/s08_animation.gd index f37d7d7e..a25ce75e 100644 --- a/scene/ground/scene/c01/s08_animation.gd +++ b/scene/ground/scene/c01/s08_animation.gd @@ -147,8 +147,8 @@ func _on_shelf_game_success() -> void: fall_off.visible = true fall_off.play() fall_off.animation_finished.connect(_on_fall_off_finished) - # 从 sfx_生死簿演出 中播放 - # $"摔倒音效".play() + # 从 sfx_生死簿演出 中退出时播放不出来,需要在此处播放 + $"摔倒音效".play() _check_portal() func _on_fall_off_finished() -> void: diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index 809c6cac..c3bb566c 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://cwu4dhayra8pg"] +[gd_scene load_steps=22 format=3 uid="uid://cwu4dhayra8pg"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_b3cca"] [ext_resource type="Script" uid="uid://6q2pfbqsw10t" path="res://scene/ground/scene/c01/s08_animation.gd" id="2_0lque"] @@ -13,6 +13,7 @@ [ext_resource type="Texture2D" uid="uid://c3ii6vsja0645" path="res://asset/art/scene/c01/s08_书店/书店参考.png" id="6_l2q02"] [ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="7_fue0t"] [ext_resource type="SpriteFrames" uid="uid://bmwm400w8r4ju" path="res://asset/art/gif/c01_书店/c01_书店_frames.tres" id="8_hunwx"] +[ext_resource type="AudioStream" uid="uid://bnjyw5v85s6qe" path="res://asset/audio/sfx/交互/序章/04_书店内_主角摔倒.wav" id="8_p6k3c"] [ext_resource type="Texture2D" uid="uid://bho8xal4ha50l" path="res://asset/art/scene/c01/s08_书店/l_打光.png" id="9_i4dqp"] [ext_resource type="AudioStream" uid="uid://cniawn37n8888" path="res://asset/audio/sfx/交互/序章/04_书店内_递交报纸.wav" id="9_lfr41"] [ext_resource type="Texture2D" uid="uid://bp4y3vujvsl7r" path="res://asset/art/scene/c01/s08_书店/fg_前景.png" id="10_4e3a1"] @@ -43,7 +44,7 @@ _data = { [sub_resource type="RectangleShape2D" id="RectangleShape2D_0x288"] resource_local_to_scene = true -size = Vector2(10, 70) +size = Vector2(20, 70) [node name="S08" type="Node2D"] position = Vector2(1, 0) @@ -60,6 +61,7 @@ script = ExtResource("2_0lque") oneshot_animation = "one_shot" [node name="环境音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 stream = ExtResource("3_0x288") volume_db = -8.0 autoplay = true @@ -72,6 +74,7 @@ mode = "场景背景音" metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="诡异环境音" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 stream = ExtResource("5_eerhd") volume_db = -7.0 bus = &"game_sfx" @@ -83,19 +86,28 @@ mode = "场景背景音" metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="写字声[未启用]" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 stream = ExtResource("4_5j1ov") bus = &"game_sfx" script = ExtResource("4_p6k3c") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="放报纸音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] +process_mode = 1 stream = ExtResource("9_lfr41") volume_db = -5.0 bus = &"game_sfx" script = ExtResource("4_p6k3c") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="BGSprite2D" parent="Ground" index="1"] +[node name="摔倒音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="4"] +process_mode = 1 +stream = ExtResource("8_p6k3c") +bus = &"game_sfx" +script = ExtResource("4_p6k3c") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="BGSprite2D" parent="Ground" index="2"] material = SubResource("ShaderMaterial_ddd5v") texture = ExtResource("3_322m4") offset = Vector2(0, -158) @@ -151,7 +163,11 @@ scatter_on_start = true [node name="Interactable报纸柜台" parent="Ground/DeployLayer" index="6" instance=ExtResource("7_fue0t")] position = Vector2(135, 49) +[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable报纸柜台" index="0"] +process_mode = 1 + [node name="SfxSuccess" parent="Ground/DeployLayer/Interactable报纸柜台" index="1"] +process_mode = 1 stream = null [node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable报纸柜台/Area2D" index="0"] @@ -185,7 +201,7 @@ energy = 0.4 texture = ExtResource("9_i4dqp") offset = Vector2(317, 0) -[node name="MainPlayer" parent="Ground" index="4"] +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(437, 98) character = "小小蝶" @@ -197,7 +213,7 @@ offset = Vector2(0, 40) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(30, 150, 545, 150) -[node name="DirectionalLight2D" parent="Ground" index="7"] +[node name="DirectionalLight2D" parent="Ground" index="8"] energy = 0.0 blend_mode = 1 diff --git a/scene/ground/scene/c02/s03_animation.gd b/scene/ground/scene/c02/s03_animation.gd index b38aef61..013673d8 100644 --- a/scene/ground/scene/c02/s03_animation.gd +++ b/scene/ground/scene/c02/s03_animation.gd @@ -40,6 +40,11 @@ func _on_ground_ready() -> void: $"../DeployLayer/Ambush偷听对话".enabled = false eavesdrop_window.visible = false + # 小蝉消失 + var xiaochan = $"../DeployLayer/Ambush小蝉消失" as Ambush2D + if xiaochan.played: + xiaochan.visible = false + $"../DeployLayer/Closeup敲门游戏".exit.connect(_on_knock_exit) counter = $"../DeployLayer/Interactable柜子" as Interactable2D @@ -85,7 +90,7 @@ func _on_ground_ready() -> void: small_shoe = $"../DeployLayer/Pickable小鞋子" as Pickable2D if ArchiveManager.get_global_value("c02_madman_interacted", false) and not data.camera_played: - SceneManager.freeze_player(0) + SceneManager.lock_player(0) # 等待转场 await get_tree().create_timer(1.0).timeout small_shoe.enabled = true @@ -116,14 +121,19 @@ func _on_ground_ready() -> void: _setup_bully_or_burning(true) +func xiaochan_disappear(): + var xc = $"../DeployLayer/Ambush小蝉消失/ProSprite" as AnimatedSprite2D + xc.play("小蝉背对转头") + create_tween().tween_property(xc, "modulate:a", 0.0, 2.2) + + func drop_shoe(progress: float, y1: float, y2: float): var t = ease(progress, 4.0) small_shoe.position.y = lerp(y1, y2, t) func cg_end() -> void: - SceneManager.release_player() - # prop_小鞋子2 + SceneManager.unlock_player() # SceneManager.enable_prop_item("prop_小鞋子2") set_data("camera_played", true) $"../CameraFocusMarker".limit_top += 1000 @@ -174,17 +184,19 @@ func shocking_lighting() -> void: func eavesdrop() -> void: $"../DeployLayer/Ambush偷听对话".enabled = false # 12 c00_吕萍_蹲下 13 c00_吕萍_蹲下呼吸 14 c00_吕萍_起立 - SceneManager.freeze_player(0, 12) + SceneManager.lock_player(0, 12) # play("eavesdrop") await get_tree().create_timer(1.0).timeout - SceneManager.freeze_player(0, 13) + SceneManager.player_action(13) # 对话 DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_04_李氏癞子") await DialogueManager.dialogue_ended eavesdrop_window.visible = false await get_tree().create_timer(1.0).timeout - SceneManager.freeze_player(1.0, 14, true) + SceneManager.player_action(14, true) ArchiveManager.set_global_entry("c02_eavesdrop_finished", true) + await get_tree().create_timer(1.5).timeout + SceneManager.unlock_player() func _setup_bully_or_burning(reenter_scene := false): @@ -204,11 +216,12 @@ func _setup_bully_or_burning(reenter_scene := false): bully_layer.get_node("wall/CollisionShape2D").disabled = false burning_layer.visible = false bully_layer.visible = true + # 霸凌童谣直接播放 + $"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".play() if not ArchiveManager.get_global_value("c02_ready_to_fire"): bully_layer.get_node("Ambush霸凌").enabled = true else: GlobalFunctor.c02_fire_count_down_try_start() - $"../DeployLayer/霸凌/f1/Sfx2D霸凌童谣".play() else: bully_layer.visible = false $VibeSfx.switch_to("c02_火灾") diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index afb86306..53169379 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -288,12 +288,14 @@ data = { oneshot_animation = "" [node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 stream = ExtResource("6_vddfx") bus = &"game_sfx" script = ExtResource("4_ygnci") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx小鞋落地" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 stream = ExtResource("7_df1yo") bus = &"game_sfx" script = ExtResource("4_ygnci") @@ -379,7 +381,17 @@ position = Vector2(132, 10) sprite_frames = ExtResource("4_gd6xp") animation = &"肉铺门口血迹" -[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="9"] +[node name="Ambush小蝉消失" parent="Ground/DeployLayer" index="9" instance=ExtResource("25_iyaiw")] +position = Vector2(274, 64) +hook_method = "xiaochan_disappear" + +[node name="ProSprite" parent="Ground/DeployLayer/Ambush小蝉消失" instance=ExtResource("33_ycojw")] +position = Vector2(211, -7) +sprite_frames = ExtResource("4_gd6xp") +animation = &"小蝉背对转头" +autoplay = "小蝉背对呼吸帧" + +[node name="灯笼" type="Node2D" parent="Ground/DeployLayer" index="10"] [node name="灯笼" type="Sprite2D" parent="Ground/DeployLayer/灯笼"] position = Vector2(1644, -86) @@ -426,7 +438,7 @@ color = Color(1, 0.0980392, 0, 1) energy = 0.7 texture = SubResource("GradientTexture2D_kyfht") -[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="10"] +[node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="11"] visible = false [node name="地上纸钱" type="Sprite2D" parent="Ground/DeployLayer/新背景_奠"] @@ -461,7 +473,7 @@ position = Vector2(898, -162) z_index = 15 position = Vector2(1964, -209) -[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="11"] +[node name="闷雷_纸人闪现" type="Node2D" parent="Ground/DeployLayer" index="12"] visible = false [node name="Ambush闷雷纸人" parent="Ground/DeployLayer/闷雷_纸人闪现" instance=ExtResource("25_iyaiw")] @@ -488,15 +500,14 @@ range_layer_max = 2 range_item_cull_mask = 4 texture = SubResource("GradientTexture2D_3nako") -[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="12" instance=ExtResource("25_iyaiw")] +[node name="Ambush要下雨了" parent="Ground/DeployLayer" index="13" instance=ExtResource("25_iyaiw")] position = Vector2(1611, 46) hook_os_key = "c02_院子_要下雨" -[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="13" instance=ExtResource("7_em2ma")] +[node name="Pickable小鞋子" parent="Ground/DeployLayer" index="14" instance=ExtResource("7_em2ma")] position = Vector2(809, 75) sign_mark_offset = Vector2(0, -16.88) enabled = false -action_key = 4 prop_key = "prop_小鞋子2" [node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/Pickable小鞋子"] @@ -504,7 +515,7 @@ position = Vector2(0, -7) scale = Vector2(0.15, 0.15) texture = ExtResource("8_plfv5") -[node name="Interactable铁门" parent="Ground/DeployLayer" index="14" instance=ExtResource("8_xt8j0")] +[node name="Interactable铁门" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_xt8j0")] light_mask = 5 position = Vector2(1222, 28) texture = ExtResource("7_gd6xp") @@ -513,6 +524,12 @@ action_key = 3 interacted_texture = ExtResource("9_liq0c") prop_key = "prop_老虎钳" +[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable铁门" index="0"] +process_mode = 1 + +[node name="SfxSuccess" parent="Ground/DeployLayer/Interactable铁门" index="1"] +process_mode = 1 + [node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Area2D" index="0"] shape = SubResource("RectangleShape2D_er6ob") @@ -524,7 +541,7 @@ collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Ground/DeployLayer/Interactable铁门/Wall"] shape = SubResource("RectangleShape2D_mdix7") -[node name="Note算命摊位" parent="Ground/DeployLayer" index="15" instance=ExtResource("6_t48d1")] +[node name="Note算命摊位" parent="Ground/DeployLayer" index="16" instance=ExtResource("6_t48d1")] position = Vector2(725, 45) note_key = "c02_院子_算命摊位" @@ -532,13 +549,13 @@ note_key = "c02_院子_算命摊位" position = Vector2(0, 18) texture = ExtResource("6_1tart") -[node name="煤油灯" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_jme4f")] +[node name="煤油灯" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")] position = Vector2(290, 1) gaslight_energy = 1.5 gaslight_ground_energy = 0.7 mute_when_interacted = false -[node name="煤油灯2" parent="Ground/DeployLayer" index="17" instance=ExtResource("10_jme4f")] +[node name="煤油灯2" parent="Ground/DeployLayer" index="18" instance=ExtResource("10_jme4f")] position = Vector2(610, 1) gaslight_texture = ExtResource("11_g0qhj") ground_light_texture = ExtResource("12_ni5ro") @@ -546,7 +563,7 @@ gaslight_energy = 1.5 gaslight_ground_energy = 0.7 mute_when_interacted = false -[node name="煤油灯3" parent="Ground/DeployLayer" index="18" instance=ExtResource("10_jme4f")] +[node name="煤油灯3" parent="Ground/DeployLayer" index="19" instance=ExtResource("10_jme4f")] position = Vector2(857, 1) gaslight_texture = ExtResource("13_hw832") ground_light_texture = ExtResource("14_7pq5y") @@ -554,46 +571,46 @@ gaslight_energy = 1.5 gaslight_ground_energy = 0.7 mute_when_interacted = false -[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="19"] +[node name="井" type="Sprite2D" parent="Ground/DeployLayer" index="20"] self_modulate = Color(0.739288, 0.739288, 0.739288, 1) light_mask = 5 z_index = 10 position = Vector2(2062, 60) texture = ExtResource("21_4n8vm") -[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="20"] +[node name="药车" type="Sprite2D" parent="Ground/DeployLayer" index="21"] light_mask = 5 z_index = 10 position = Vector2(1025, 27) texture = ExtResource("22_3y5s5") -[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="21" instance=ExtResource("23_81juy")] +[node name="Closeup敲门游戏" parent="Ground/DeployLayer" index="22" instance=ExtResource("23_81juy")] position = Vector2(466, 3) packed_scene = ExtResource("24_0o4rt") collision_width_and_x = Vector2(40, 0) -[node name="Closeup井" parent="Ground/DeployLayer" index="22" instance=ExtResource("23_81juy")] +[node name="Closeup井" parent="Ground/DeployLayer" index="23" instance=ExtResource("23_81juy")] z_index = 6 position = Vector2(2063, 50) packed_scene = ExtResource("26_yy4fp") -[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="23" instance=ExtResource("25_iyaiw")] +[node name="Ambush惊悚闪电" parent="Ground/DeployLayer" index="24" instance=ExtResource("25_iyaiw")] position = Vector2(1319, 40) hook_method = "shocking_lighting" -[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="24" instance=ExtResource("25_iyaiw")] +[node name="Ambush偷听对话" parent="Ground/DeployLayer" index="25" instance=ExtResource("25_iyaiw")] position = Vector2(1836, 7) trigger_mode = "interact" one_shot = false hook_method = "eavesdrop" -[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="25"] +[node name="李氏赖子房间人影" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="26"] position = Vector2(1835, -16) sprite_frames = SubResource("SpriteFrames_0o4rt") autoplay = "default" frame_progress = 0.643855 -[node name="Npc井边疯子" parent="Ground/DeployLayer" index="26" instance=ExtResource("35_plfv5")] +[node name="Npc井边疯子" parent="Ground/DeployLayer" index="27" instance=ExtResource("35_plfv5")] z_index = 10 position = Vector2(2037, 67) sprite_frames = ExtResource("4_gd6xp") @@ -614,7 +631,7 @@ position = Vector2(-11, -3) shape = SubResource("RectangleShape2D_bbhbr") disabled = true -[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="27"] +[node name="霸凌" type="Node2D" parent="Ground/DeployLayer" index="28"] visible = false position = Vector2(2154, 60) @@ -640,10 +657,10 @@ animation = &"霸凌1" autoplay = "霸凌1" [node name="Sfx2D霸凌童谣" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/霸凌/f1"] +process_mode = 1 stream = ExtResource("46_qqdxs") volume_db = -5.0 -max_distance = 1000.0 -attenuation = 3.0 +attenuation = 2.0 bus = &"game_sfx" script = ExtResource("54_o1qbs") loop = true @@ -679,7 +696,7 @@ collision_mask = 0 shape = SubResource("RectangleShape2D_d7h4s") disabled = true -[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="28"] +[node name="火灾" type="Node2D" parent="Ground/DeployLayer" index="29"] visible = false [node name="右窗" type="AnimatedSprite2D" parent="Ground/DeployLayer/火灾"] @@ -913,6 +930,7 @@ animation = &"吕萍牵手动作" shape = SubResource("RectangleShape2D_vddfx") [node name="Sfx2D跑步" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/火灾/牵手跑"] +process_mode = 1 stream = SubResource("AudioStreamRandomizer_fxne6") volume_db = 3.0 bus = &"game_sfx" @@ -920,7 +938,7 @@ script = ExtResource("54_o1qbs") loop = true metadata/_custom_type_script = "uid://wapo47a1oddf" -[node name="Interactable柜子" parent="Ground/DeployLayer" index="29" instance=ExtResource("8_xt8j0")] +[node name="Interactable柜子" parent="Ground/DeployLayer" index="30" instance=ExtResource("8_xt8j0")] visible = false position = Vector2(1772, 48) texture = ExtResource("32_cpifc") diff --git a/scene/ground/scene/c02/s06_animation.gd b/scene/ground/scene/c02/s06_animation.gd index e5bc2aec..b6701be7 100644 --- a/scene/ground/scene/c02/s06_animation.gd +++ b/scene/ground/scene/c02/s06_animation.gd @@ -159,7 +159,6 @@ func _c02_final_show(): func _on_exit_final_show(_arg): # 瞎、胖、蝉三人离开 play("c02_final_show_end") - SceneManager.freeze_player(0) # 小蝉动画通过 捂脸-呼吸-移动 来控制 # 胖子与瞎子动画也是如此 await get_tree().create_timer(0.5).timeout diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index 05bf37be..f5bf2850 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=51 format=3 uid="uid://cootarwb44vvh"] +[gd_scene load_steps=52 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_animation.gd" id="2_4dg6u"] @@ -781,7 +781,7 @@ tracks/3/keys = { "transitions": PackedFloat32Array(1), "values": [{ "args": [], -"method": &"start_timer" +"method": &"play" }] } @@ -797,6 +797,10 @@ _data = { resource_local_to_scene = true size = Vector2(20, 70) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7kxvk"] +resource_local_to_scene = true +size = Vector2(20, 70) + [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wywax"] playback_mode = 1 streams_count = 2 @@ -857,18 +861,21 @@ autoplay_group = &"c02_楼道2" metadata/_custom_type_script = "uid://cpejxlfni6n52" [node name="Sfx翻找东西" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 stream = ExtResource("5_lh55k") bus = &"game_sfx" script = ExtResource("4_2e08x") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx擦亮火柴" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 stream = ExtResource("5_wywax") bus = &"game_sfx" script = ExtResource("4_2e08x") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx偷看关门" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] +process_mode = 1 stream = ExtResource("7_7kxvk") bus = &"game_sfx" script = ExtResource("4_2e08x") @@ -938,6 +945,12 @@ position = Vector2(616, -14) ground_light_texture = ExtResource("8_7x2h6") ground_height_offset = 15.0 +[node name="SfxInvalid" parent="Ground/DeployLayer/煤油灯" index="0"] +process_mode = 1 + +[node name="SfxSuccess" parent="Ground/DeployLayer/煤油灯" index="1"] +process_mode = 1 + [node name="CollisionShape2D" parent="Ground/DeployLayer/煤油灯/Area2D" index="0"] shape = SubResource("RectangleShape2D_lh55k") @@ -959,6 +972,19 @@ disable_prop_after_interacted = true prop_key = "prop_小鞋子1" prop_key2 = "prop_小鞋子2" +[node name="SfxInvalid" parent="Ground/DeployLayer/Interactable老鼠洞" index="0"] +process_mode = 1 + +[node name="SfxSuccess" parent="Ground/DeployLayer/Interactable老鼠洞" index="1"] +process_mode = 1 + +[node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable老鼠洞/Area2D" index="0"] +shape = SubResource("RectangleShape2D_7kxvk") + +[node name="SignSnapper" parent="Ground/DeployLayer/Interactable老鼠洞" index="4"] +radius = 15.0 +walk_to_edge = true + [node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="10"] visible = false position = Vector2(608, -15) @@ -985,6 +1011,7 @@ action_configs = Array[Dictionary]([{ }]) [node name="疯子撞墙Sfx2D" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/疯子撞墙"] +process_mode = 1 position = Vector2(5, 28) stream = SubResource("AudioStreamRandomizer_wywax") volume_db = 10.0 @@ -1110,6 +1137,7 @@ move_configs = Array[Dictionary]([{ debug_mov_animation = "方瞎子走路-左" [node name="Sfx2D脚步声" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/c02_final/瞎子"] +process_mode = 1 position = Vector2(-39, -20) stream = SubResource("AudioStreamRandomizer_4ndyv") bus = &"game_sfx" @@ -1163,3 +1191,4 @@ blend_mode = 1 [editable path="Ground"] [editable path="Ground/DeployLayer/煤油灯"] +[editable path="Ground/DeployLayer/Interactable老鼠洞"] diff --git a/scene/ground/scene/c02/s08_animation.gd b/scene/ground/scene/c02/s08_animation.gd index 2de5da23..d7efafdc 100644 --- a/scene/ground/scene/c02/s08_animation.gd +++ b/scene/ground/scene/c02/s08_animation.gd @@ -54,6 +54,7 @@ func _on_ground_ready() -> void: boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat else: $"../DeployLayer/Closeup画".enabled = true + $"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".play() if boxcat_played: $"../DeployLayer/portal_left".status = "opened" # 玩过小猫游戏,画框内容更新 禁止再进入 @@ -123,7 +124,7 @@ func enter_room() -> void: ambush_lookback.enabled = false var player = SceneManager.get_player() as MainPlayer var player_x = 513.0 - SceneManager.freeze_player(0) + SceneManager.lock_player(0) var camera = SceneManager.get_camera_marker() var tween = create_tween() # 镜头右侧 limit 设置到 room_camera_r_limit @@ -142,7 +143,7 @@ func enter_room() -> void: setup_rect_after_entered() sprite.visible = false player.hide_sprite = false - SceneManager.release_player() + SceneManager.unlock_player() interacting = false @@ -161,7 +162,7 @@ func setup_rect_after_entered() -> void: func look_back_hole(): var darker_light = $"../AmbientLayer/下洞黑化Light" as PointLight2D - SceneManager.freeze_player(0, 10) + SceneManager.lock_player(0, 10) var laizi = $"../DeployLayer/癞子偷窥" laizi.visible = true var camera = SceneManager.get_camera_marker() as CameraFocusMarker @@ -184,7 +185,7 @@ func look_back_hole(): func _on_shocked(): SceneManager.pop_debug_dialog_info("音效", "惊吓") - SceneManager.freeze_player(0, 11, true) + SceneManager.player_action(11, true) SceneManager.get_player().animation_finished.connect(_on_shocked_finished, CONNECT_ONE_SHOT) $"Sfx吹灭蜡烛".play() await create_tween().tween_interval(0.6).finished @@ -206,5 +207,5 @@ func _on_shocked(): func _on_shocked_finished(): # 起身位置向左偏移稍许 SceneManager.get_player().position.x -= 12 - SceneManager.release_player() + SceneManager.unlock_player() $"../DeployLayer/癞子偷窥".visible = false diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn index 07b1b667..263e98ea 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.tscn +++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn @@ -125,6 +125,7 @@ autoplay_group = &"c02_房间里2" metadata/_custom_type_script = "uid://cpejxlfni6n52" [node name="Sfx癞子对视惊吓" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +process_mode = 1 stream = ExtResource("5_0qeqe") volume_db = 2.0 bus = &"game_sfx" @@ -132,12 +133,14 @@ script = ExtResource("3_t3h08") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx摔倒" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"] +process_mode = 1 stream = ExtResource("6_nnqdd") bus = &"game_sfx" script = ExtResource("3_t3h08") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx吹灭蜡烛" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"] +process_mode = 1 stream = ExtResource("7_quq80") bus = &"game_sfx" script = ExtResource("3_t3h08") @@ -218,6 +221,12 @@ animation_low_mode = true hide_texture = true gaslight_energy = 2.0 +[node name="SfxInvalid" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="0"] +process_mode = 1 + +[node name="SfxSuccess" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯" index="1"] +process_mode = 1 + [node name="CollisionShape2D" parent="Ground/DeployLayer/灯座Sprite2D/煤油灯/Area2D" index="0"] shape = SubResource("RectangleShape2D_a48k2") @@ -289,6 +298,7 @@ animation = &"c02_王癞子_蹲着呼吸" autoplay = "c02_王癞子_蹲着呼吸" [node name="Sfx2D癞子呼吸" type="AudioStreamPlayer2D" parent="Ground/DeployLayer/癞子偷窥"] +process_mode = 1 stream = ExtResource("20_ujhuc") volume_db = -5.0 max_distance = 700.0 @@ -332,7 +342,6 @@ texture = ExtResource("12_1ws4i") position = Vector2(105, 70) texture = ExtResource("18_dkqw0") sign_mark_offset = Vector2(0, -9.34) -action_key = 4 prop_key = "prop_粘鼠板" [node name="下洞黑化Light" type="PointLight2D" parent="Ground/AmbientLayer" index="0"] diff --git a/scene/ground/scene/c02/s10_animation.gd b/scene/ground/scene/c02/s10_animation.gd index f1dfd522..5cac659c 100644 --- a/scene/ground/scene/c02/s10_animation.gd +++ b/scene/ground/scene/c02/s10_animation.gd @@ -132,9 +132,8 @@ func _on_counter_interacted(): else: player.player_movement_rect.position.x += 60 player.player_movement_rect.size.x -= 65 - SceneManager.freeze_player(0) var x = counter.global_position.x - player_pull_offset_x - # 走到左侧 + # 走到左侧,自动 freeze/release player.walk_to_x(x).tween_callback(func(): player.character = "吕萍推柜子" player.lock_move_right = true diff --git a/scene/ground/scene/c02/s10_空房间.tscn b/scene/ground/scene/c02/s10_空房间.tscn index 7ce7cb28..da74ffbf 100644 --- a/scene/ground/scene/c02/s10_空房间.tscn +++ b/scene/ground/scene/c02/s10_空房间.tscn @@ -87,7 +87,7 @@ script = ExtResource("3_kqj5r") autoplay_group = &"c02_房间里1" metadata/_custom_type_script = "uid://cpejxlfni6n52" -[node name="BGSprite2D" parent="Ground" index="1"] +[node name="BGSprite2D" parent="Ground" index="2"] position = Vector2(26, 0) texture = ExtResource("3_ox8et") @@ -182,7 +182,6 @@ position = Vector2(373, -13.8031) gaslight_energy = 2.0 gaslight_ground_energy = 2.0 mute_when_interacted = false -one_shot = false [node name="拼接小猫玩具" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"] visible = false @@ -222,7 +221,7 @@ hook_method = "first_enter_ambush" position = Vector2(198, -28.5923) texture = SubResource("GradientTexture2D_3ftnp") -[node name="MainPlayer" parent="Ground" index="4"] +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(315, 98) facing_direction = Vector2(1, 0) @@ -233,7 +232,7 @@ position = Vector2(193, 0) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(50, 150, 510, 150) -[node name="DirectionalLight2D" parent="Ground" index="7"] +[node name="DirectionalLight2D" parent="Ground" index="8"] visible = false energy = 0.9 blend_mode = 1 diff --git a/scene/ground/scene/c02/s12_盒子猫.tscn b/scene/ground/scene/c02/s12_盒子猫.tscn index b124d113..5871361a 100644 --- a/scene/ground/scene/c02/s12_盒子猫.tscn +++ b/scene/ground/scene/c02/s12_盒子猫.tscn @@ -22,6 +22,7 @@ script = ExtResource("2_7ah3n") oneshot_animation = "" [node name="Sfx钻盒子演出" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"] +process_mode = 1 stream = ExtResource("3_72mc1") bus = &"game_sfx" script = ExtResource("4_r3hvb") diff --git a/scene/ground/script/c02/s08_画特写.tscn b/scene/ground/script/c02/s08_画特写.tscn index e01b9cf9..1b6a69d9 100644 --- a/scene/ground/script/c02/s08_画特写.tscn +++ b/scene/ground/script/c02/s08_画特写.tscn @@ -1,8 +1,10 @@ -[gd_scene load_steps=4 format=3 uid="uid://dd8dfoik0ig3y"] +[gd_scene load_steps=6 format=3 uid="uid://dd8dfoik0ig3y"] [ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/ground/script/c02/通用特写脚本.gd" id="1_jgyts"] [ext_resource type="Texture2D" uid="uid://d1seskftkw08q" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫初次特写.png" id="2_jo6o1"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop_and_bag/特写通用遮罩.png" id="3_myoho"] +[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_4p6cc"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="5_i34yq"] [node name="s08_画特写" type="CanvasLayer"] script = ExtResource("1_jgyts") @@ -18,3 +20,27 @@ offset_top = -3.0 offset_right = 585.0 offset_bottom = 313.0 texture = ExtResource("3_myoho") + +[node name="ContentInspector" parent="." instance=ExtResource("4_4p6cc")] + +[node name="遮罩" type="TextureRect" parent="ContentInspector"] +offset_left = -35.0 +offset_top = -3.0 +offset_right = 585.0 +offset_bottom = 313.0 +texture = ExtResource("5_i34yq") + +[node name="Label" type="Label" parent="ContentInspector/遮罩"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -7.0 +offset_right = 20.0 +offset_bottom = 7.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "c02_小蝉盒子特写" diff --git a/scene/ground/script/c02/s08_画特写2.tscn b/scene/ground/script/c02/s08_画特写2.tscn index 9ffc3eec..f7803fe4 100644 --- a/scene/ground/script/c02/s08_画特写2.tscn +++ b/scene/ground/script/c02/s08_画特写2.tscn @@ -48,6 +48,8 @@ texture = ExtResource("5_75okh") [node name="ContentInspector" parent="." instance=ExtResource("6_ybyuk")] [node name="遮罩" type="TextureRect" parent="ContentInspector"] +visible = false +layout_mode = 0 offset_left = -35.0 offset_top = -3.0 offset_right = 585.0 diff --git a/scene/ground/script/c02/小手讨东西.tscn b/scene/ground/script/c02/小手讨东西.tscn index d2c86cdc..37f97c8e 100644 --- a/scene/ground/script/c02/小手讨东西.tscn +++ b/scene/ground/script/c02/小手讨东西.tscn @@ -109,6 +109,7 @@ sign_mark_offset = Vector2(0, -5) [node name="Pickable元宝" parent="." instance=ExtResource("12_6lwlv")] position = Vector2(44, 103) sign_mark_offset = Vector2(0, -20.95) +action_key = 4 prop_key = "prop_锡箔元宝" [node name="Sprite2D" type="Sprite2D" parent="Pickable元宝"] diff --git a/scene/ground/script/c02/盒子猫canvas_layer.gd b/scene/ground/script/c02/盒子猫canvas_layer.gd index 1ac412da..49f2a2ca 100644 --- a/scene/ground/script/c02/盒子猫canvas_layer.gd +++ b/scene/ground/script/c02/盒子猫canvas_layer.gd @@ -62,9 +62,10 @@ func _try_toggle_crawl(): crawling_toggle_tween = create_tween() var crawl = down_pressing if crawl: - SceneManager.freeze_player(0, 7) + SceneManager.freeze_player(0) + SceneManager.player_action(7) else: - SceneManager.freeze_player(0, 8, true) + SceneManager.player_action(8, true) crawling_toggle_tween.tween_interval(0.4) if not crawl: crawling_toggle_tween.tween_callback(SceneManager.release_player) diff --git a/scene/ground/script/c02/谢幕演出.tscn b/scene/ground/script/c02/谢幕演出.tscn index 8956b1ce..8af2851e 100644 --- a/scene/ground/script/c02/谢幕演出.tscn +++ b/scene/ground/script/c02/谢幕演出.tscn @@ -396,18 +396,21 @@ script = ExtResource("1_s8k21") [node name="Root" type="Node2D" parent="."] [node name="Sfx擦火柴" type="AudioStreamPlayer" parent="Root"] +process_mode = 1 stream = ExtResource("2_yo1xc") bus = &"game_sfx" script = ExtResource("3_r7yca") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx小蝉捂眼后笑声" type="AudioStreamPlayer" parent="Root"] +process_mode = 1 stream = ExtResource("4_8edqb") bus = &"game_sfx" script = ExtResource("3_r7yca") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx小蝉蒙眼" type="AudioStreamPlayer" parent="Root"] +process_mode = 1 stream = ExtResource("5_kfwxg") bus = &"game_sfx" script = ExtResource("3_r7yca") diff --git a/scene/index_page.gd b/scene/index_page.gd index f82fe8d1..86a66d96 100644 --- a/scene/index_page.gd +++ b/scene/index_page.gd @@ -4,7 +4,7 @@ extends Control @onready var animation_player = $AnimationPlayer as AnimationPlayer @onready var animation_root = $AnimationRoot as Control -@onready var sfx = %Sfx as Sfx +@onready var sfx_click = %SfxClick as Sfx @onready var newgame_btn = %NewGame as Button @onready var resume_btn = %Resume as Button @onready var quit_btn = %Quit as Button @@ -39,14 +39,14 @@ func _check_resume_btn(): func _on_newgame_pressed(): - sfx.global_play() + sfx_click.global_play() # 覆盖使用 1 号存档 ArchiveManager.create_and_use_new_archive(1) _enter_main_scene() func _on_resume_pressed(): - sfx.global_play() + sfx_click.global_play() # 继续一号存档 if GlobalConfig.DEBUG: print("Resume") @@ -64,7 +64,7 @@ func _enter_main_scene(): func _on_quit_pressed(): # 退出时点击音效将无法播放 - #sfx.global_play() + #sfx_click.global_play() SceneManager.quit_game() diff --git a/scene/index_page.tscn b/scene/index_page.tscn index e6a1fb17..0caa9359 100644 --- a/scene/index_page.tscn +++ b/scene/index_page.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=11 format=3 uid="uid://c4ycvdsabi7lw"] +[gd_scene load_steps=12 format=3 uid="uid://c4ycvdsabi7lw"] [ext_resource type="Script" uid="uid://b4rw4hk7ns4m8" path="res://scene/index_page.gd" id="1_c7y7r"] [ext_resource type="Texture2D" uid="uid://bcc0bk34l5gbc" path="res://asset/art/ui/index_menu/菜单背景1.png" id="1_jxn4k"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_te6ya"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5oc6i"] +[ext_resource type="AudioStream" uid="uid://brs150xgqnyd5" path="res://asset/audio/专用/衔蝶_主菜单music人声版.mp3" id="4_te6ya"] [sub_resource type="Animation" id="Animation_8kiap"] resource_name = "default" @@ -64,13 +65,23 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 -[node name="Sfx" type="AudioStreamPlayer" parent="."] +[node name="SfxClick" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("2_te6ya") volume_db = -8.285 bus = &"game_sfx" script = ExtResource("3_5oc6i") +[node name="SfxBGM" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_te6ya") +bus = &"game_sfx" +script = ExtResource("3_5oc6i") +mode = "场景背景音" +"自动开始" = true +"循环播放" = true +"感应玩家操作" = false +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="TextureRect" type="TextureRect" parent="."] layout_mode = 1 anchors_preset = 15 diff --git a/scene/little_game/拼凑信件.tscn b/scene/little_game/拼凑信件.tscn index 7955d4b6..e74fe97a 100644 --- a/scene/little_game/拼凑信件.tscn +++ b/scene/little_game/拼凑信件.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://c2y4mpkygrmaf" path="res://asset/art/little_game/拼凑信件/桌面.png" id="2_0fxwt"] [ext_resource type="AudioStream" uid="uid://cxs1p014bq3bn" path="res://asset/audio/sfx/交互/序章/04_书店内_旋转信纸.wav" id="3_eph5y"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_ifhby"] -[ext_resource type="Texture2D" uid="uid://duxdnw1uhlpm5" path="res://asset/art/little_game/拼凑信件/信件碎片.png" id="3_mjf3s"] +[ext_resource type="Texture2D" uid="uid://oh4e48nxm4j6" path="res://asset/art/little_game/拼凑信件/信件碎片.png" id="3_mjf3s"] [sub_resource type="AtlasTexture" id="AtlasTexture_4e0jv"] atlas = ExtResource("3_mjf3s") diff --git a/scene/prop/prop_inspector.tscn b/scene/prop/prop_inspector.tscn index facc5921..8db4c95a 100644 --- a/scene/prop/prop_inspector.tscn +++ b/scene/prop/prop_inspector.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://cekhj65axie0p"] +[gd_scene load_steps=5 format=3 uid="uid://cekhj65axie0p"] [ext_resource type="Script" uid="uid://1xdb7s1nigv8" path="res://scene/prop/prop_inspector.gd" id="1_2wpwe"] [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop_and_bag/inspect背景遮罩.png" id="2_j83lq"] [ext_resource type="Texture2D" uid="uid://cvgw2mxrlr6io" path="res://asset/art/scene/c02/旧版/s02_走道/ux_进门鼠疫海报yz.png" id="2_wr575"] -[ext_resource type="Texture2D" uid="uid://dwgxa5j6602vv" path="res://asset/art/ui/prop_and_bag/inspect文本衬底蒙版.png" id="4_hehdd"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="4_opug5"] [node name="PropInspector" type="CanvasLayer"] @@ -76,7 +75,7 @@ grow_horizontal = 2 grow_vertical = 2 size_flags_horizontal = 4 mouse_filter = 2 -texture = ExtResource("4_hehdd") +texture = ExtResource("2_j83lq") [node name="MarginContainer2" type="MarginContainer" parent="."] anchors_preset = 15