reenter lock 相关调整;demo 小蝶相关引导完善

This commit is contained in:
cakipaul 2025-06-27 00:02:50 +08:00
parent acd0886cda
commit 98e4dfc668
65 changed files with 625 additions and 99 deletions

View File

@ -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

View File

@ -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")
}, {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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

BIN
asset/art/little_game/拼凑信件/信件碎片.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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_院长的信_说明,浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路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_瞎子卧室_八卦图,「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...,,,,,
c02_瞎子卧室_十字架,院长房间里也有一个类似的十字架。,,,,,
c02_小蝉盒子特写,我会在盒子里一直陪着你 :3,,,,,
c02_小蝉恨他们,我恨他们!,,,,,
c02_火灾等待准备,还没准备好点火呢,,,,,
c02_霸凌救小蝉开始,啊!我得想办法帮帮那个小女孩...,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
11 setting_画册 画册(G)
12 notes_干掉的血迹 干掉的血迹
13 c02_瞎子卧室_血脚印 这画上的脚印和刚刚看到的一样。
14 prop_奇怪的肉_说明
15 index_新游戏 新游戏 New Game
16 index_继续游戏 继续游戏 Resume
17 index_退出游戏 退出游戏 Exit
66 prop_院长的信 院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png]
67 prop_院长的信_说明 浦育院院长秦阳<br>民国21年11月20日<br>致吕萍:<br>你现下境况如何?<br>你虽离开浦育院已久,但我始终没有忘记为你祈祷。<br>愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。<br>你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。<br>若有闲暇,欢迎你回浦育院看看。<br>院长童玉君<br>民国十九年十月十五日<br>公寓地址 芦昌路26弄3号
68 prop_火柴 火柴 [#texture=c02/火柴.png]
69 prop_火柴_说明 火柴_说明 盒里还剩下很多根,稍微有些受潮 [#texture=c02/火柴.png]
70 prop_小猫玩具的脑袋 小猫玩具的脑袋 [#texture=c02/新小猫头.png]
71 prop_小猫玩具的脑袋_说明 某个玩具的部件,有些眼熟
72 prop_无头小猫玩具 无头小猫玩具 [#texture=c02/新小猫身体.png][#inspect=c02/新小猫身体_特写.png]
73 prop_无头小猫玩具_说明 没有脑袋的小猫玩偶,针脚歪歪扭扭,不甚熟练
74 prop_小猫玩具完整 小猫玩具 [#texture=c02/新小猫全身.png]
85 prop_小鞋子2_说明 尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓
86 prop_麻将 麻将 [#texture=c02/麻将.png]
87 prop_麻将_说明 这块麻将上雕着一朵圆形的花
88 prop_奇怪的肉 奇怪的肉 奇怪的肉 这块肉脂肪黄黄的...[ID:prop_奇怪的肉_说明] [#texture=c02/奇怪的肉.png]
prop_奇怪的肉_说明
89 prop_弹珠 弹珠 [#texture=c02/弹珠.png]
90 prop_弹珠_说明 一种玻璃小球,孩子们常用它来进行弹子游戏
91 prop_木头人偶 木头人偶 [#texture=c02/小蝉人偶.png]
171 c02_离开红色演出 刚才那些...到底是怎么回事?
172 c02_瞎子卧室_八卦图 「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着...
173 c02_瞎子卧室_十字架 院长房间里也有一个类似的十字架。
174 c02_小蝉盒子特写 我会在盒子里一直陪着你 :3
175 c02_小蝉恨他们 我恨他们!
176 c02_火灾等待准备 还没准备好点火呢
177 c02_霸凌救小蝉开始 啊!我得想办法帮帮那个小女孩...

View File

@ -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_离开红色演出]
「乾三连,坤六断;震仰盂,艮覆碗;离中虚,坎中满;兑上缺,巽下断」<br>咦,这口诀是谁教我的来着... [ID:c02_瞎子卧室_八卦图]
院长房间里也有一个类似的十字架。[ID:c02_瞎子卧室_十字架]
我会在盒子里一直陪着你 :3 [ID:c02_小蝉盒子特写]
我恨他们![ID:c02_小蝉恨他们]
# c02 火灾
还没准备好点火呢 [ID:c02_火灾等待准备]

View File

@ -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():

View File

@ -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():

View File

@ -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)

View File

@ -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()

View File

@ -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"

View File

@ -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="."]

View File

@ -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

View File

@ -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()

View File

@ -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 = "小小蝶"

View File

@ -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:

View File

@ -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

View File

@ -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_火灾")

View File

@ -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")

View File

@ -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

View File

@ -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老鼠洞"]

View File

@ -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

View File

@ -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"]

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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_小蝉盒子特写"

View File

@ -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

View File

@ -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元宝"]

View File

@ -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)

View File

@ -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")

View File

@ -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()

View File

@ -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

View File

@ -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")

View File

@ -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