序章文案交互细节整改;增加Note2d互动动作;

This commit is contained in:
cakipaul 2025-03-20 18:00:53 +08:00
parent 3ad2475f17
commit 06e7054156
59 changed files with 829 additions and 184 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qidgsi8po28g"
path="res://.godot/imported/1.png-0b4a086c10435029061d56eb3934b80a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面抬头/1.png"
dest_files=["res://.godot/imported/1.png-0b4a086c10435029061d56eb3934b80a.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.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2qo5n5kdbb1i"
path="res://.godot/imported/2.png-2aad7bf34a702d4af13ec99219ebf490.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面抬头/2.png"
dest_files=["res://.godot/imported/2.png-2aad7bf34a702d4af13ec99219ebf490.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.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b17hualhwripu"
path="res://.godot/imported/3.png-4eedb4a7a21f50964cf5f23e98fa1e92.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面抬头/3.png"
dest_files=["res://.godot/imported/3.png-4eedb4a7a21f50964cf5f23e98fa1e92.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.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://kl8hklflrruw"
path="res://.godot/imported/4.png-3bd8f54a6c7aaefdca297285dcc02706.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面抬头/4.png"
dest_files=["res://.godot/imported/4.png-3bd8f54a6c7aaefdca297285dcc02706.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.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dd01nj0cxeq4s"
path="res://.godot/imported/1.png-8e34a94be437da74237eefe25303b3b9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/1.png"
dest_files=["res://.godot/imported/1.png-8e34a94be437da74237eefe25303b3b9.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.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bw8icdmlelyaa"
path="res://.godot/imported/10.png-5428ada018a00020a073bb4b5442e474.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/10.png"
dest_files=["res://.godot/imported/10.png-5428ada018a00020a073bb4b5442e474.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.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dvdbsejs4l2vk"
path="res://.godot/imported/2.png-f9a3c55cc135f2ff17bebc9a920cfe89.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/2.png"
dest_files=["res://.godot/imported/2.png-f9a3c55cc135f2ff17bebc9a920cfe89.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://c8g2wj6ydbs1m"
path="res://.godot/imported/3.png-1a121101bc7298d281b1b779392f4d9d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/3.png"
dest_files=["res://.godot/imported/3.png-1a121101bc7298d281b1b779392f4d9d.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://nksmho8vpfpm"
path="res://.godot/imported/4.png-81827c9f5008ce559785c463e33cf9de.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/4.png"
dest_files=["res://.godot/imported/4.png-81827c9f5008ce559785c463e33cf9de.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://x0r6f4ji6haj"
path="res://.godot/imported/5.png-7445a9543c9bc45739455f267c1134c8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/5.png"
dest_files=["res://.godot/imported/5.png-7445a9543c9bc45739455f267c1134c8.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://coomdeo2c4fyg"
path="res://.godot/imported/6.png-ad67fbe9c31da2fd77ad561a89b389a1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/6.png"
dest_files=["res://.godot/imported/6.png-ad67fbe9c31da2fd77ad561a89b389a1.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://s6xrmay5c75i"
path="res://.godot/imported/7.png-f0e531bf40e0c53cb05162e3ef64b3fb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/7.png"
dest_files=["res://.godot/imported/7.png-f0e531bf40e0c53cb05162e3ef64b3fb.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://bob8nhp48r53x"
path="res://.godot/imported/8.png-74b840b6015828096fbf6895fde0fe1c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/8.png"
dest_files=["res://.godot/imported/8.png-74b840b6015828096fbf6895fde0fe1c.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.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3fkbh3l5scm7"
path="res://.godot/imported/9.png-af0fdb81c713853115b03f2896a4ce06.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/animation/c01_小小蝶_背面蹲下/9.png"
dest_files=["res://.godot/imported/9.png-af0fdb81c713853115b03f2896a4ce06.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.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -7,6 +7,6 @@ position = Vector2(294, 145)
scale = Vector2(0.2, 0.2)
script = ExtResource("1_48e0h")
export_path = "res://asset/art/fog_mask.png"
l_ease_in_x = 600.0
mid = 700.0
r_ease_out_x = 600.0
l_ease_in_x = 450.0
mid = 570.0
r_ease_out_x = 450.0

View File

@ -19,18 +19,21 @@
#“在这儿吗......” [ID:c01_在这儿吗]
#=> END
#~ c01_s05_院长房间_开场
#吕萍: (念诵夜行船——)[#wait=4] [ID:c01_s05_夜行船1]
#吕萍: (疑惑——)[ID:c01_s05_夜行船2]
#=> END
~ c01_s05_院长房间_开场
: ...后面看不清了。
=> END
~ c01_s06_走廊前对话
老师: 昨天认的字,现在全忘了? [ID:c01_s06_走廊前对话1]
老师: (唉呀)黄鱼脑子! [ID:c01_s06_走廊前对话2]
=> END
~ c01_s06_对话1
# 猫鼠游戏前与跟班1的对话
~ c01_s06_四个小孩画鬼差的对话
胖小孩: 画完了没有?你小子咋比秤砣还沉!
残疾小孩: 快了、快了。
跟班甲: 这是个啥?黑乎乎的,旁边还有两朵花。
残疾小孩: 非也,非也。谁规定神仙不能长成这样的?
胖小孩: 呸,神仙要是真长得这么丑,老子以后都倒立撒尿!
跟班乙: 嘶,总觉得好像在哪见过……
跟班甲: 这画是六指儿画的,你问他去!
残疾小孩: 我知道什么?知道也不能告诉你!
@ -39,20 +42,6 @@
跟班乙: 搞得大家都不去墙根底下玩儿了,真晦气。
=> END
#~ c01_s06_对话2
## 猫鼠游戏前与跟班2同乡的对话
#小孩乙: (台词设计)老乡啊... [ID:c01_s06_对话2_1]
#=> END
~ c01_s06_对话3
# 猫鼠游戏前,与胖子的对话
胖小孩: 画完了没有?你小子咋比秤砣还沉! [ID:c01_s06_对话3_1]
残疾小孩: 快了、快了。 [ID:c01_s06_对话3_2]
跟班甲: 这是个啥?黑乎乎的,旁边还有两朵花。
残疾小孩: 非也,非也。谁规定神仙不能长成这样的?
胖小孩: 呸,神仙要是真长得这么丑,老子以后都倒立撒尿!
=> END
~ c01_s06_谈论鬼差与猫鼠游戏
胖小孩: 站住! [ID:c01_s06_谈论鬼差1]
胖小孩: 我们可没让你走! [ID:c01_s06_谈论鬼差2]

View File

@ -57,7 +57,7 @@ prop_银元_说明,一枚“袁大头”银元,中華民國十年造。,,,
重要物品示例,重要物品示例,,,
4,4,,,
c01_s05_检查院长房间,好像忘记了什么事情,再回去检查一遍吧。,,,
c01_s07_需要报纸,我想先在周围看看,,,
c01_s07_需要报纸,书店还没开门。,,,
c01_s08_书店工作,老板交代的工作还没做完,不能偷懒。,,,
c01_s08_书店工钱,这个月的工钱还没拿。,,,
notes_纸条,纸条,,,
@ -81,6 +81,8 @@ c01_倾斜的洋相片,"哇啊,这张洋相片要掉下来了!
c01_摆正的洋相片,这是院长的儿子吗?,,,
c01_s06_院长房间,这是院长的房间,,,
c01_s06_小朋友房间,这是其他小朋友的房间,,,
c01_s06_熟悉的墙画,"墙上的画看起来好熟悉。
过去问问看吧,没准他们几个知道些什么。",,,
c01_s07_钱碗,碗里只有一枚铜钱。,,,
c01_s07_获得报纸,这是什么?,,,
c01_s07_书店展柜,"院长说,读一百本书,就可以成为无所不能的大人。

1 keys zh_CN _character _notes _tags
57 重要物品示例 重要物品示例
58 4 4
59 c01_s05_检查院长房间 好像忘记了什么事情,再回去检查一遍吧。
60 c01_s07_需要报纸 我想先在周围看看 书店还没开门。
61 c01_s08_书店工作 老板交代的工作还没做完,不能偷懒。
62 c01_s08_书店工钱 这个月的工钱还没拿。
63 notes_纸条 纸条
81 c01_s07_获得报纸 c01_s07_钱碗 这是什么? 碗里只有一枚铜钱。
82 c01_s07_书店展柜 c01_s07_获得报纸 院长说,读一百本书,就可以成为无所不能的大人。 如果我再大一些,没准可以求店长把我留下,我会干很多活,也能吃苦... 这是什么?
83 c01_s08_书架游戏完成 c01_s07_书店展柜 这些书都被老鼠啃坏了,连木头架子都没放过。 院长说,读一百本书,就可以成为无所不能的大人。 如果我再大一些,没准可以求店长把我留下,我会干很多活,也能吃苦...
84 c01_s08_书架游戏完成 这些书都被老鼠啃坏了,连木头架子都没放过。
85 c01_s08_获得袁大头后 工钱还在老地方。
86 c01_s08_获得袁大头后 c02_小蝉寻人启事_脸部破碎 工钱还在老地方。 似乎是一张寻人启事 脸的部分被撕掉了,看不清
87 c02_小蝉寻人启事_脸部破碎 c02_卫生宣传画 似乎是一张寻人启事 脸的部分被撕掉了,看不清 几张卫生宣传画
88 c02_卫生宣传画 c02_老鼠洞 几张卫生宣传画 一个老鼠洞 在这种楼里挺常见的

View File

@ -93,7 +93,7 @@
~ HoldingReason
好像忘记了什么事情,再回去检查一遍吧。 [ID:c01_s05_检查院长房间]
我想先在周围看看 [ID:c01_s07_需要报纸]
书店还没开门。 [ID:c01_s07_需要报纸]
老板交代的工作还没做完,不能偷懒。 [ID:c01_s08_书店工作]
这个月的工钱还没拿。 [ID:c01_s08_书店工钱]
=> END
@ -119,6 +119,8 @@
# c01-s06 院子
这是院长的房间 [ID:c01_s06_院长房间]
这是其他小朋友的房间 [ID:c01_s06_小朋友房间]
# 院子里四个小孩交谈结束后
墙上的画看起来好熟悉。\n过去问问看吧没准他们几个知道些什么。 [ID:c01_s06_熟悉的墙画]
# c01-s07 书店外
碗里只有一枚铜钱。 [ID:c01_s07_钱碗]
这是什么? [ID:c01_s07_获得报纸]

View File

@ -1,4 +1,4 @@
[gd_resource type="SpriteFrames" load_steps=643 format=3 uid="uid://b7fhheih1hbvf"]
[gd_resource type="SpriteFrames" load_steps=657 format=3 uid="uid://b7fhheih1hbvf"]
[ext_resource type="Texture2D" uid="uid://bpqrd6vo3j17m" path="res://asset/art/animation/c00_吕萍_记笔记_right/吕萍-拿本子记录1.png" id="1_6sdvl"]
[ext_resource type="Texture2D" uid="uid://dvq64espa37lx" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx1.png" id="1_ekv0l"]
@ -582,19 +582,33 @@
[ext_resource type="Texture2D" uid="uid://ckjmxl5s6ahnf" path="res://asset/art/animation/c02_父亲_walking/04.png" id="306_nwm8y"]
[ext_resource type="Texture2D" uid="uid://fsr50578o8o5" path="res://asset/art/animation/c02_父亲_walking/05.png" id="307_w72k7"]
[ext_resource type="Texture2D" uid="uid://bxm6d7a7fonwg" path="res://asset/art/animation/c02_父亲_walking/06.png" id="308_wvflb"]
[ext_resource type="Texture2D" uid="uid://qidgsi8po28g" path="res://asset/art/animation/c01_小小蝶_背面抬头/1.png" id="309_iimum"]
[ext_resource type="Texture2D" uid="uid://bm3wfydsh5sy" path="res://asset/art/animation/c02_父亲_walking/07.png" id="309_tddmd"]
[ext_resource type="Texture2D" uid="uid://dh71vjomp5ph7" path="res://asset/art/animation/c02_父亲_walking/08.png" id="310_5fimm"]
[ext_resource type="Texture2D" uid="uid://c2qo5n5kdbb1i" path="res://asset/art/animation/c01_小小蝶_背面抬头/2.png" id="310_u2jno"]
[ext_resource type="Texture2D" uid="uid://b17hualhwripu" path="res://asset/art/animation/c01_小小蝶_背面抬头/3.png" id="311_13qfd"]
[ext_resource type="Texture2D" uid="uid://xu7bvnpxu4f5" path="res://asset/art/animation/c02_父亲_walking/09.png" id="311_p2jtk"]
[ext_resource type="Texture2D" uid="uid://kl8hklflrruw" path="res://asset/art/animation/c01_小小蝶_背面抬头/4.png" id="312_a0f2d"]
[ext_resource type="Texture2D" uid="uid://c4qcsycjrubxr" path="res://asset/art/animation/c02_父亲_walking/10.png" id="312_g3qi2"]
[ext_resource type="Texture2D" uid="uid://cjwvnc6v1esls" path="res://asset/art/animation/c02_父亲_walking/11.png" id="313_3u68t"]
[ext_resource type="Texture2D" uid="uid://dd01nj0cxeq4s" path="res://asset/art/animation/c01_小小蝶_背面蹲下/1.png" id="313_ypwpj"]
[ext_resource type="Texture2D" uid="uid://dvdbsejs4l2vk" path="res://asset/art/animation/c01_小小蝶_背面蹲下/2.png" id="314_3qf2e"]
[ext_resource type="Texture2D" uid="uid://c0u51u2xfr65v" path="res://asset/art/animation/c02_父亲_walking/12.png" id="314_tn4yb"]
[ext_resource type="Texture2D" uid="uid://bnn5fhy2b0eij" path="res://asset/art/animation/c02_父亲_walking/13.png" id="315_co38u"]
[ext_resource type="Texture2D" uid="uid://c8g2wj6ydbs1m" path="res://asset/art/animation/c01_小小蝶_背面蹲下/3.png" id="315_ktwt1"]
[ext_resource type="Texture2D" uid="uid://nksmho8vpfpm" path="res://asset/art/animation/c01_小小蝶_背面蹲下/4.png" id="316_2v3u4"]
[ext_resource type="Texture2D" uid="uid://ocsxgjimkgru" path="res://asset/art/animation/c02_父亲_walking/14.png" id="316_qt3wx"]
[ext_resource type="Texture2D" uid="uid://x0r6f4ji6haj" path="res://asset/art/animation/c01_小小蝶_背面蹲下/5.png" id="317_dlydb"]
[ext_resource type="Texture2D" uid="uid://dtqalpxr53rf3" path="res://asset/art/animation/c02_父亲_walking/15.png" id="317_lqbts"]
[ext_resource type="Texture2D" uid="uid://d0pmkf2lnvwoi" path="res://asset/art/animation/c02_父亲_walking/16.png" id="318_vvse2"]
[ext_resource type="Texture2D" uid="uid://coomdeo2c4fyg" path="res://asset/art/animation/c01_小小蝶_背面蹲下/6.png" id="318_xewty"]
[ext_resource type="Texture2D" uid="uid://6w86kjr1lqs8" path="res://asset/art/animation/c02_父亲_walking/17.png" id="319_aforw"]
[ext_resource type="Texture2D" uid="uid://s6xrmay5c75i" path="res://asset/art/animation/c01_小小蝶_背面蹲下/7.png" id="319_yjsfv"]
[ext_resource type="Texture2D" uid="uid://bob8nhp48r53x" path="res://asset/art/animation/c01_小小蝶_背面蹲下/8.png" id="320_253oi"]
[ext_resource type="Texture2D" uid="uid://dh8mu7and5r21" path="res://asset/art/animation/c02_父亲_walking/18.png" id="320_lu3p0"]
[ext_resource type="Texture2D" uid="uid://cp6jsnas2a3n1" path="res://asset/art/animation/c02_父亲_桌前说话/2.png" id="321_eqfeu"]
[ext_resource type="Texture2D" uid="uid://b3fkbh3l5scm7" path="res://asset/art/animation/c01_小小蝶_背面蹲下/9.png" id="321_mlkjm"]
[ext_resource type="Texture2D" uid="uid://bw8icdmlelyaa" path="res://asset/art/animation/c01_小小蝶_背面蹲下/10.png" id="322_nsui4"]
[ext_resource type="Texture2D" uid="uid://d1f3p5hd4ip0h" path="res://asset/art/animation/c02_父亲_桌前说话/3.png" id="322_o1dfe"]
[ext_resource type="Texture2D" uid="uid://bcdx7wpeth3kr" path="res://asset/art/animation/c02_父亲_桌前说话/4.png" id="323_jffdy"]
[ext_resource type="Texture2D" uid="uid://vs3thiqsv4i0" path="res://asset/art/animation/c02_父亲_桌前说话/6.png" id="324_u6al6"]
@ -1721,6 +1735,58 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("309_iimum")
}, {
"duration": 1.0,
"texture": ExtResource("310_u2jno")
}, {
"duration": 1.0,
"texture": ExtResource("311_13qfd")
}, {
"duration": 1.0,
"texture": ExtResource("312_a0f2d")
}],
"loop": true,
"name": &"c01_小小蝶_背面抬头",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("313_ypwpj")
}, {
"duration": 1.0,
"texture": ExtResource("314_3qf2e")
}, {
"duration": 1.0,
"texture": ExtResource("315_ktwt1")
}, {
"duration": 1.0,
"texture": ExtResource("316_2v3u4")
}, {
"duration": 1.0,
"texture": ExtResource("317_dlydb")
}, {
"duration": 1.0,
"texture": ExtResource("318_xewty")
}, {
"duration": 1.0,
"texture": ExtResource("319_yjsfv")
}, {
"duration": 1.0,
"texture": ExtResource("320_253oi")
}, {
"duration": 1.0,
"texture": ExtResource("321_mlkjm")
}, {
"duration": 1.0,
"texture": ExtResource("322_nsui4")
}],
"loop": true,
"name": &"c01_小小蝶_背面蹲下",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("55_vb76q")
}, {
"duration": 1.0,

View File

@ -8,11 +8,11 @@ const RES_FILE_FORMAT = ".tres"
## layers
const CANVAS_LAYER_SETTINGS = 30
const CANVAS_LAYER_DIALOG = 23
const CANVAS_LAYER_BAG = 25
const CANVAS_LAYER_UI = 22
const CANVAS_LAYER_PROP_INSPECTOR = 21
const CANVAS_LAYER_BAG = 12
const CANVAS_LAYER_GROUND_MASK = 11
const CANVAS_LAYER_GROUND_MASK = 14
const CANVAS_LAYER_DIALOG = 12
const CANVAS_LAYER_SHADING = 10
const CANVAS_LAYER_LITTLE_GAME = 5
const CANVAS_LAYER_FG = 2

View File

@ -64,6 +64,7 @@ var mutation_cooldown: Timer = Timer.new()
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_DIALOG
balloon.hide()
Engine.get_singleton("DialogueManager").mutated.connect(_on_mutated)

View File

@ -57,7 +57,7 @@ MarginContainer/constants/margin_top = 15
Panel/styles/panel = SubResource("StyleBoxEmpty_jydvi")
[node name="Balloon" type="CanvasLayer"]
layer = 23
layer = 12
script = ExtResource("1_36de5")
metadata/_edit_vertical_guides_ = [-78.0]
metadata/_edit_horizontal_guides_ = [276.0]
@ -133,7 +133,8 @@ theme_override_constants/shadow_offset_x = 1
theme_override_font_sizes/normal_font_size = 9
text = "Dialogue..."
autowrap_mode = 0
seconds_per_step = 0.06
seconds_per_step = 0.005
seconds_per_pause_step = 0.1
[node name="Responses" type="MarginContainer" parent="Balloon"]
layout_mode = 1

View File

@ -56,7 +56,7 @@ MarginContainer/constants/margin_top = 15
Panel/styles/panel = SubResource("StyleBoxEmpty_jydvi")
[node name="Balloon" type="CanvasLayer"]
layer = 100
layer = 12
script = ExtResource("1_jfh0c")
metadata/_edit_vertical_guides_ = [-78.0]
metadata/_edit_horizontal_guides_ = [276.0]

View File

@ -8,7 +8,7 @@ signal read_note
enabled = val
if is_node_ready():
sign_mark.enabled = val
@export var action := 3 #3为none; 4为lookup_wall; 之后为其他动作,请参考 PlayerAnimationConfig
@export var action := 4 #3为none; 4为lookup_wall; 之后为其他动作,请参考 PlayerAnimationConfig
@export_enum("os", "ballon") var mode = "os"
@export_enum("items", "c01", "c02", "c03", "c04", "c05") var dialogue := "items":
set(val):
@ -86,7 +86,16 @@ func _on_interacted() -> void:
func _show_os(res, title):
var lines = await DialogueUtil.get_lines(res, title)
SceneManager.pop_os(lines)
SceneManager.freeze_player(1.0, action)
interacting = true
var player = SceneManager.get_player()
if player:
player.freeze_player(0.0, action, false)
player.os_finished.connect(_on_os_finished, CONNECT_ONE_SHOT)
func _on_os_finished():
interacting = false
SceneManager.release_player()
func _show_balloon(res, title):

View File

@ -23,23 +23,22 @@ emission_shape = 3
emission_box_extents = Vector3(300, 20, 0)
angle_min = -300.0
angle_max = 300.0
direction = Vector3(0, 50, 0)
direction = Vector3(-20, 70, 0)
spread = 30.0
initial_velocity_min = 5.0
initial_velocity_max = 15.0
initial_velocity_min = 10.0
initial_velocity_max = 35.0
gravity = Vector3(0, 0, 0)
scale_min = 0.1
scale_max = 0.5
scale_min = 0.5
scale_curve = SubResource("CurveTexture_jq14j")
color_ramp = SubResource("GradientTexture1D_5cty7")
[node name="ParticalsAsh" type="Node2D"]
[node name="纸钱" type="GPUParticles2D" parent="."]
amount = 200
process_material = SubResource("ParticleProcessMaterial_wa8gc")
amount = 300
texture = ExtResource("1_hsa64")
lifetime = 50.0
lifetime = 30.0
preprocess = 20.0
visibility_rect = Rect2(-750, 0, 1500, 600)
process_material = SubResource("ParticleProcessMaterial_wa8gc")
metadata/_edit_vertical_guides_ = [-721.0]

View File

@ -35,7 +35,7 @@ func _enter_tree() -> void:
if is_node_ready():
reset_position_immediately()
func shake_camera(strength := 15.0):
func shake_camera(strength := 7.0):
shake_strength = strength
func reset_position_immediately():

View File

@ -72,9 +72,12 @@ func _on_ground_ready() -> void:
piano.interacted.connect(_on_piano_interacted)
func _on_bed_reading_frame_changed():
if bed_reading.animation == "c01_小小蝶_床上看书" and bed_reading.frame == 10:
# 播放结束0.5s 后释放角色
get_tree().create_timer(0.5).timeout.connect(SceneManager.release_player)
if bed_reading.animation == "c01_小小蝶_床上看书":
if bed_reading.frame == 5:
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s05_院长房间_开场")
elif bed_reading.frame == 10:
# 播放结束0.5s 后释放角色
get_tree().create_timer(0.5).timeout.connect(SceneManager.release_player)
func _on_note_read():

View File

@ -462,7 +462,7 @@ tracks/8/path = NodePath("CameraFocusMarker:zoom_ratio")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0, 0.84, 3.18, 4.1),
"times": PackedFloat32Array(0, 1.22, 3.1, 4.1),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [1.0, 1.3, 1.3, 1.0]

View File

@ -76,11 +76,31 @@ func _dean_flip_book() -> void:
dean.play("院长翻书")
# 在游戏开始前,更早的对话
func pre_game_intro():
SceneManager.freeze_player(0)
DialogueManager.dialogue_ended.connect(_on_pre_game_intro_finished, CONNECT_ONE_SHOT)
var camera = SceneManager.get_camera_marker() as CameraFocusMarker
camera.tween_zoom(1.5, 3.0)
var p = $"../DeployLayer/四小孩画鬼差的对话ambush/FocusPoint"
camera.focus_node(p, 3.0)
await get_tree().create_timer(1.5).timeout
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s06_四个小孩画鬼差的对话")
func _on_pre_game_intro_finished(_res):
# 重置镜头
SceneManager.focus_player_and_reset_zoom(2.5)
await get_tree().create_timer(1.5).timeout
var lines = await DialogueUtil.generate_lines(tr("c01_s06_熟悉的墙画"))
var player = SceneManager.get_player() as MainPlayer
player.pop_os(lines)
player.os_finished.connect(pre_game_os_finished, CONNECT_ONE_SHOT)
func pre_game_os_finished():
SceneManager.release_player()
func game_intro() -> void:
# 游戏开始后禁用npc对话
standing_kid1.get_node("对话1").enabled = false
standing_kid2.get_node("对话2").enabled = false
game_kid.get_node("对话3").enabled = false
# 禁用猫鼠游戏开始 ambush 检测
cat_rat_game_start_ambush.enabled = false
var camera = SceneManager.get_camera_marker() as CameraFocusMarker
@ -116,8 +136,10 @@ func _game_counting_down(_res = null):
cat.visible = true
cat.play("【墙上黑猫】跑步")
var kid_run_tween
func _kids_start_run():
standing_kid1.get_node("猫鼠游戏重置ambush").enabled = true
if kid_run_tween:

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=35 format=3 uid="uid://bx16c8nn32f40"]
[gd_scene load_steps=34 format=3 uid="uid://bx16c8nn32f40"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_bitx7"]
[ext_resource type="Script" uid="uid://don6fobmq0h6x" path="res://scene/ground/scene/c01/s06_animation.gd" id="2_fkfhi"]
@ -79,10 +79,6 @@ size = Vector2(10, 70)
resource_local_to_scene = true
size = Vector2(30, 70)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ga8xr"]
resource_local_to_scene = true
size = Vector2(20, 60)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_jw18h"]
noise_type = 2
fractal_type = 2
@ -154,6 +150,7 @@ target_scene = "c01_s07"
visible = false
position = Vector2(575, 9)
enabled = false
action = 3
title_filter = "c01"
note_key = "c01_s06_院长房间"
@ -161,12 +158,14 @@ note_key = "c01_s06_院长房间"
visible = false
position = Vector2(998, 2)
enabled = false
action = 3
title_filter = "c01"
note_key = "c01_s06_小朋友房间"
[node name="门口对话ambush" parent="Ground/DeployLayer" index="4" instance=ExtResource("11_tudob")]
position = Vector2(295, 43)
freeze_time = 1.0
lock_player_on_playing_dialogue = false
hook_dialogue_title = "c01_s06_走廊前对话"
[node name="门口ambush" parent="Ground/DeployLayer" index="5" instance=ExtResource("11_tudob")]
@ -196,7 +195,15 @@ position = Vector2(1358, 0)
sprite_frames = ExtResource("2_l4axy")
animation = &"跷跷板"
[node name="drawing_kids" type="Node2D" parent="Ground/DeployLayer" index="9"]
[node name="四小孩画鬼差的对话ambush" parent="Ground/DeployLayer" index="9" instance=ExtResource("11_tudob")]
position = Vector2(1413, 66)
freeze_time = 1.0
hook_method = "pre_game_intro"
[node name="FocusPoint" type="Node2D" parent="Ground/DeployLayer/四小孩画鬼差的对话ambush"]
position = Vector2(212, -35)
[node name="drawing_kids" type="Node2D" parent="Ground/DeployLayer" index="10"]
position = Vector2(1593, 44)
[node name="【画画小女孩】" parent="Ground/DeployLayer/drawing_kids" instance=ExtResource("8_ouldg")]
@ -231,7 +238,7 @@ action_configs = Array[Dictionary]([{
"intro_loop": 2
}])
[node name="游戏中途桌椅" parent="Ground/DeployLayer" index="10" instance=ExtResource("8_ouldg")]
[node name="游戏中途桌椅" parent="Ground/DeployLayer" index="11" instance=ExtResource("8_ouldg")]
position = Vector2(2838.5, 0.5)
sprite_frames = ExtResource("7_dsj2r")
animation = &"桌椅正常"
@ -260,7 +267,7 @@ position = Vector2(7, 48)
shape = SubResource("RectangleShape2D_1ojoa")
debug_color = Color(0.519778, 0.447036, 0.929413, 0.42)
[node name="Interactable桌椅" parent="Ground/DeployLayer" index="11" instance=ExtResource("12_idjp0")]
[node name="Interactable桌椅" parent="Ground/DeployLayer" index="12" instance=ExtResource("12_idjp0")]
position = Vector2(2740.5, 50.5)
one_shot = false
@ -270,7 +277,7 @@ metadata/_edit_use_anchors_ = true
[node name="CollisionShape2D" parent="Ground/DeployLayer/Interactable桌椅/Area2D" index="0"]
shape = SubResource("RectangleShape2D_73xsu")
[node name="【站立小孩-3】" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_ouldg")]
[node name="【站立小孩-3】" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_ouldg")]
position = Vector2(1558, -12)
sprite_frames = ExtResource("7_dsj2r")
animation = &"【站立小孩-3】呼吸"
@ -288,7 +295,7 @@ move_configs = Array[Dictionary]([{
"velocity": Vector2(35, 0)
}])
[node name="【站立小孩-1】" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_ouldg")]
[node name="【站立小孩-1】" parent="Ground/DeployLayer" index="14" instance=ExtResource("8_ouldg")]
position = Vector2(1533, -5)
sprite_frames = ExtResource("7_dsj2r")
animation = &"【站立小孩-1】侧面呼吸"
@ -306,7 +313,7 @@ move_configs = Array[Dictionary]([{
"velocity": Vector2(38, 0)
}, {
"animation": &"【站立小孩-1】侧面跑步",
"velocity": Vector2(120, 0)
"velocity": Vector2(115, 0)
}])
[node name="桌椅ambush1" parent="Ground/DeployLayer/【站立小孩-1】" instance=ExtResource("11_tudob")]
@ -333,17 +340,7 @@ enabled = false
[node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-1】/猫鼠游戏重置ambush/Area2D" index="0"]
shape = SubResource("RectangleShape2D_7cdhx")
[node name="对话1" parent="Ground/DeployLayer/【站立小孩-1】" instance=ExtResource("12_28t76")]
position = Vector2(0, 53)
mode = "ballon"
dialogue = "c01"
title_filter = "c01"
note_key = "c01_s06_对话1"
[node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-1】/对话1/Area2D" index="0"]
shape = SubResource("RectangleShape2D_ga8xr")
[node name="【站立小孩-2】" parent="Ground/DeployLayer" index="14" instance=ExtResource("8_ouldg")]
[node name="【站立小孩-2】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")]
z_index = 10
position = Vector2(1505, 19)
sprite_frames = ExtResource("7_dsj2r")
@ -363,7 +360,7 @@ move_configs = Array[Dictionary]([{
"velocity": Vector2(33, 0)
}, {
"animation": &"【站立小孩-2】侧面跑步",
"velocity": Vector2(95, 0)
"velocity": Vector2(110, 0)
}])
[node name="FocusPoint" type="Node2D" parent="Ground/DeployLayer/【站立小孩-2】"]
@ -381,15 +378,7 @@ collision_mask = 64
[node name="CollisionShape2D" parent="Ground/DeployLayer/【站立小孩-2】/桌椅ambush2/Area2D" index="0"]
shape = SubResource("RectangleShape2D_ceat6")
[node name="对话2" parent="Ground/DeployLayer/【站立小孩-2】" instance=ExtResource("12_28t76")]
position = Vector2(0, 42)
enabled = false
mode = "ballon"
dialogue = "c01"
title_filter = "c01"
note_key = "c01_s06_对话2"
[node name="【墙上黑猫】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")]
[node name="【墙上黑猫】" parent="Ground/DeployLayer" index="16" instance=ExtResource("8_ouldg")]
position = Vector2(1453, -14)
scale = Vector2(0.8, 0.8)
sprite_frames = ExtResource("7_dsj2r")
@ -401,13 +390,13 @@ move_configs = Array[Dictionary]([{
"velocity": Vector2(150, 0)
}])
[node name="猫鼠游戏开始ambush" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_tudob")]
[node name="猫鼠游戏开始ambush" parent="Ground/DeployLayer" index="17" instance=ExtResource("11_tudob")]
position = Vector2(1809, 56)
one_shot = false
freeze_time = 1.0
hook_method = "game_intro"
[node name="【胖小孩背着残疾小孩】" parent="Ground/DeployLayer" index="17" instance=ExtResource("8_ouldg")]
[node name="【胖小孩背着残疾小孩】" parent="Ground/DeployLayer" index="18" instance=ExtResource("8_ouldg")]
z_index = 1
position = Vector2(1733, 5)
sprite_frames = ExtResource("7_dsj2r")
@ -429,7 +418,7 @@ action_configs = Array[Dictionary]([{
}])
move_configs = Array[Dictionary]([{
"animation": "【胖小孩背着残疾小孩】奔跑",
"velocity": Vector2(90, 0)
"velocity": Vector2(106, 0)
}])
[node name="桌椅ambush3" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("11_tudob")]
@ -450,6 +439,7 @@ z_as_relative = false
position = Vector2(-23, 1)
sprite_frames = ExtResource("7_dsj2r")
animation = &"【单残疾小孩】爬行"
autoplay = "【单残疾小孩】爬行"
autostart = false
move_configs = Array[Dictionary]([{
"animation": &"【单残疾小孩】爬行",
@ -470,7 +460,7 @@ action_configs = Array[Dictionary]([{
"animation_next": "【墙上小孩猫影子】猫影跑步",
"animation_wait_time": 1.0
}])
light_energy = -0.2
light_energy = -0.1
[node name="猫鼠游戏失败ambush" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】" instance=ExtResource("11_tudob")]
position = Vector2(19, 49)
@ -483,14 +473,7 @@ enabled = false
[node name="CollisionShape2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush/Area2D" index="0"]
shape = SubResource("RectangleShape2D_7cdhx")
[node name="对话3" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("12_28t76")]
position = Vector2(0, 51)
mode = "ballon"
dialogue = "c01"
title_filter = "c01"
note_key = "c01_s06_对话3"
[node name="猫鼠游戏胜利ambush" parent="Ground/DeployLayer" index="18" instance=ExtResource("11_tudob")]
[node name="猫鼠游戏胜利ambush" parent="Ground/DeployLayer" index="19" instance=ExtResource("11_tudob")]
position = Vector2(4546, 45)
one_shot = false
freeze_time = 0.1
@ -607,7 +590,6 @@ position = Vector2(0, -1)
[editable path="Ground/DeployLayer/Interactable桌椅/Sign"]
[editable path="Ground/DeployLayer/【站立小孩-1】/桌椅ambush1"]
[editable path="Ground/DeployLayer/【站立小孩-1】/猫鼠游戏重置ambush"]
[editable path="Ground/DeployLayer/【站立小孩-1】/对话1"]
[editable path="Ground/DeployLayer/【站立小孩-2】/桌椅ambush2"]
[editable path="Ground/DeployLayer/【胖小孩背着残疾小孩】/桌椅ambush3"]
[editable path="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】/猫鼠游戏失败ambush"]

View File

@ -100,7 +100,7 @@ func _on_dialogue_ended(_res) -> void:
func assign_tasks() -> void:
# 放报纸动作
SceneManager.freeze_player(4.5, 8, true)
SceneManager.freeze_player(0, 8, false)
await get_tree().create_timer(4.5).timeout
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s08_书店老板任务")
DialogueManager.dialogue_ended.connect(_on_dialogue_ended, CONNECT_ONE_SHOT)

View File

@ -139,7 +139,7 @@ hook_method = "player_been_catched"
[node name="飘动的寻人启事" parent="Ground/DeployLayer" index="6" instance=ExtResource("11_pwu7i")]
z_index = 1
position = Vector2(1027, -50)
position = Vector2(943, -51)
[node name="陆仁舞刀" parent="Ground/DeployLayer" index="7" instance=ExtResource("14_ct084")]
position = Vector2(1748, 10)
@ -235,28 +235,34 @@ ambient_light_energy = 0.6
ambient_light_color = Color(0.986481, 0.370829, 0.371193, 1)
[node name="ParticalsAsh" parent="Ground/AmbientLayer" index="2" instance=ExtResource("6_mfjjt")]
position = Vector2(1990, -138)
position = Vector2(1721, -169)
[node name="PointLight2D花" type="PointLight2D" parent="Ground/AmbientLayer" index="3"]
[node name="ParticalsAsh2" parent="Ground/AmbientLayer" index="3" instance=ExtResource("6_mfjjt")]
position = Vector2(1163, -161)
[node name="ParticalsAsh3" parent="Ground/AmbientLayer" index="4" instance=ExtResource("6_mfjjt")]
position = Vector2(2009, -139)
[node name="PointLight2D花" type="PointLight2D" parent="Ground/AmbientLayer" index="5"]
position = Vector2(317, 69)
energy = 0.7
range_item_cull_mask = 2
texture = ExtResource("17_nta2f")
[node name="PointLight2D花2" type="PointLight2D" parent="Ground/AmbientLayer" index="4"]
[node name="PointLight2D花2" type="PointLight2D" parent="Ground/AmbientLayer" index="6"]
position = Vector2(518, 69)
energy = 0.7
range_item_cull_mask = 2
texture = ExtResource("17_nta2f")
[node name="PointLight2D花3" type="PointLight2D" parent="Ground/AmbientLayer" index="5"]
[node name="PointLight2D花3" type="PointLight2D" parent="Ground/AmbientLayer" index="7"]
position = Vector2(1031, 48)
color = Color(0.95127, 0.455775, 0.326473, 1)
energy = 0.7
range_item_cull_mask = 2
texture = ExtResource("17_nta2f")
[node name="PointLight2D花4" type="PointLight2D" parent="Ground/AmbientLayer" index="6"]
[node name="PointLight2D花4" type="PointLight2D" parent="Ground/AmbientLayer" index="8"]
position = Vector2(1232, 48)
color = Color(0.95127, 0.455775, 0.326473, 1)
energy = 0.7

View File

@ -1,7 +1,7 @@
@tool
extends Node2D
@export var velocity := 0.1
@export var velocity := 0.15
@export var area_size := Vector2(500, 150):
set(val):
area_size = val
@ -31,7 +31,7 @@ func _draw() -> void:
# 最多保持 4 个点; 先生成两个在左侧,再生成两个在右侧,然后再回到左侧,以此循环,形成左右摇摆的闭合路径
var bezier_points = [Vector2(0, 0), Vector2(200, 30), Vector2(350, 60), Vector2(400, 80), Vector2(300, 90), Vector2(250, 120), Vector2(150, 150), Vector2(80, 150), Vector2(0, 150)]
var bezier_points = [Vector2(0, 0), Vector2(150, 20), Vector2(250, 40), Vector2(350, 60), Vector2(400, 80), Vector2(300, 100), Vector2(250, 120), Vector2(160, 130), Vector2(120, 140), Vector2(60, 150), Vector2(0, 150)]
var current_position = Vector2.ZERO
var weight := 0.0

View File

@ -22,7 +22,7 @@ size = Vector2(20, 10)
[node name="飘动的寻人启事" type="Node2D"]
position = Vector2(43, 96)
script = ExtResource("1_like6")
velocity = 0.4
velocity = 0.5
[node name="Node2D" type="Node2D" parent="."]

View File

@ -40,6 +40,7 @@ var gameover = false
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
# init answer first
_init_answer_and_connect_signals()
if Engine.is_editor_hint():

View File

@ -187,6 +187,7 @@ atlas = ExtResource("6_pxxx5")
region = Rect2(453, 459, 13, 97)
[node name="书架" type="CanvasLayer"]
layer = 5
script = ExtResource("1_8af23")
[node name="SfxInterchange" parent="." instance=ExtResource("3_03tyv")]

View File

@ -29,7 +29,8 @@ var mode := 0:
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
# 盖在书架上层,所以 +1
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME + 1
mode = 0
%ButtonPaperback.pressed.connect(_on_button_pressed.bind(1))
# 从右到左翻页,所以右侧-1左侧+1

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=42 format=3 uid="uid://bl5pohc77hi43"]
[gd_scene load_steps=45 format=3 uid="uid://bl5pohc77hi43"]
[ext_resource type="Script" uid="uid://cyyku6caspu01" path="res://scene/little_game/书架/生死簿.gd" id="1_wipr2"]
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_17f8x"]
@ -16,6 +16,140 @@
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_mii3t"]
[sub_resource type="Animation" id="Animation_40hbj"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DirectionalLight2D:energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DirectionalLight2D:color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 0.4655, 0.395153, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("%页面/../Polygon2D:color")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DirectionalLight2D2:color")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 0.341404, 0.271965, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DirectionalLight2D2:energy")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_adstd"]
resource_name = "flash"
length = 0.6
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DirectionalLight2D:energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.14, 0.22, 0.27, 0.39, 0.48),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.0, 1.0, 0.5, 1.0, 0.5, 0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DirectionalLight2D:color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.19, 0.38, 0.47),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(0.325954, 0.00240348, 3.62184e-06, 1), Color(1, 0.4655, 0.395153, 1), Color(0.373978, 0.00319589, 4.81308e-06, 1), Color(0.68393, 0.0117872, 1.79046e-05, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("%页面/../Polygon2D:color")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.14, 0.42, 0.51),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(0.312466, 0.312466, 0.312466, 1), Color(0.712129, 0.712129, 0.712129, 1), Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DirectionalLight2D2:color")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.19, 0.3, 0.44),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 0.873302, 0.851352, 1), Color(1, 0.341404, 0.271965, 1), Color(0.25098, 0.631373, 0.756863, 1), Color(1, 0.938654, 0.927912, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DirectionalLight2D2:energy")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.18, 0.21, 0.27, 0.34, 0.38, 0.46, 0.52),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.0, 1.0, 0.5, 10.0, 0.3, 3.0, 0.2, 0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_7rw5g"]
_data = {
&"RESET": SubResource("Animation_40hbj"),
&"flash": SubResource("Animation_adstd")
}
[sub_resource type="AtlasTexture" id="AtlasTexture_40hbj"]
atlas = ExtResource("12_adstd")
region = Rect2(213, 58, 36, 86)
@ -142,7 +276,7 @@ shader_parameter/tint_color = Color(1, 0.938631, 0.928082, 1)
shader_parameter/tint_amount = 0.127
[node name="生死簿" type="CanvasLayer"]
layer = 11
layer = 5
script = ExtResource("1_wipr2")
[node name="SfxPage" parent="." instance=ExtResource("3_17f8x")]
@ -213,7 +347,7 @@ theme_override_styles/focus = SubResource("StyleBoxEmpty_mii3t")
flat = true
[node name="Polygon2D" type="Polygon2D" parent="Control"]
color = Color(0.592157, 0, 0.0156863, 0)
color = Color(1, 1, 1, 0)
polygon = PackedVector2Array(-17, -13, 575, -11, 574, 324, -12, 322)
[node name="封面" type="Sprite2D" parent="Control"]
@ -244,7 +378,11 @@ position = Vector2(309, 158)
texture = ExtResource("7_hohup")
offset = Vector2(-20, 0)
script = ExtResource("4_dssaj")
area_size = Vector2(220, 150)
[node name="AnimationPlayer" type="AnimationPlayer" parent="Control/页面/陆小蝶"]
libraries = {
&"": SubResource("AnimationLibrary_7rw5g")
}
[node name="SfxStamp" parent="Control/页面/陆小蝶" instance=ExtResource("3_17f8x")]
stream = ExtResource("4_jifnx")
@ -259,202 +397,171 @@ file = "出现.mp3"
[node name="seals" type="Node2D" parent="Control/页面/陆小蝶"]
[node name="seal1" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-65, -30)
rotation = 0.589982
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_40hbj")
[node name="seal2" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-35, 2)
rotation = 0.354212
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_7rw5g")
[node name="seal3" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-4, -13)
rotation = -0.00212718
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_p2wy3")
[node name="seal4" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(47, -12)
rotation = 0.495285
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_i0uoq")
[node name="seal5" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-92, -65)
rotation = 1.5708
texture = SubResource("AtlasTexture_w7g70")
[node name="seal6" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-62.7654, -65)
rotation = 1.5708
texture = SubResource("AtlasTexture_iee7q")
[node name="seal7" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-33.607, -65.4473)
rotation = 1.52321
texture = SubResource("AtlasTexture_1txev")
[node name="seal8" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-4.35236, -66)
rotation = 1.5708
texture = SubResource("AtlasTexture_36qa7")
[node name="seal9" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(24.7492, -66.9614)
rotation = 1.52915
texture = SubResource("AtlasTexture_o5v72")
[node name="seal10" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-48, -54)
rotation = 3.66074
texture = SubResource("AtlasTexture_w66tj")
[node name="seal11" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-59.4444, -35.4074)
rotation = 3.78509
texture = SubResource("AtlasTexture_w3drj")
[node name="seal12" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-74.4005, -19.4802)
rotation = 3.97957
texture = SubResource("AtlasTexture_1spdb")
[node name="seal13" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-48, -39)
rotation = 1.75065
texture = SubResource("AtlasTexture_hqty3")
[node name="seal14" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-22.9836, -28.8452)
rotation = 2.17757
texture = SubResource("AtlasTexture_dnk2y")
[node name="seal15" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-32.6797, -3.01064)
rotation = 3.54012
texture = SubResource("AtlasTexture_xytdi")
[node name="seal16" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-45.2371, 21.5391)
rotation = 3.72067
texture = SubResource("AtlasTexture_wdtj8")
[node name="seal17" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-61.2921, 43.6229)
rotation = 3.8967
texture = SubResource("AtlasTexture_71e7e")
[node name="seal18" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-82.7998, 60.1157)
rotation = 4.27001
texture = SubResource("AtlasTexture_01jvt")
[node name="seal19" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-68, -18)
rotation = 2.70918
texture = SubResource("AtlasTexture_w66tj")
[node name="seal20" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-63.4966, -8.24252)
rotation = 2.70918
texture = SubResource("AtlasTexture_w3drj")
[node name="seal21" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-58.2449, 0.632675)
rotation = 2.55359
texture = SubResource("AtlasTexture_1spdb")
[node name="seal22" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-52.1566, 9.04825)
rotation = 2.40878
texture = SubResource("AtlasTexture_hqty3")
[node name="seal23" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-2, -53)
rotation = 3.19867
texture = SubResource("AtlasTexture_dnk2y")
[node name="seal24" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-3.99252, -18.2165)
rotation = 3.19867
texture = SubResource("AtlasTexture_xytdi")
[node name="seal25" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(-4.03418, 16.4319)
rotation = 3.14159
texture = SubResource("AtlasTexture_wdtj8")
[node name="seal26" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(2.37357, 50.2137)
rotation = 2.56729
texture = SubResource("AtlasTexture_71e7e")
[node name="seal27" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(28.4496, 71.6259)
rotation = 2.05168
texture = SubResource("AtlasTexture_01jvt")
[node name="seal28" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(62.6506, 75.4119)
rotation = 1.61838
texture = SubResource("AtlasTexture_dnk2y")
[node name="seal29" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(77.2228, 75.1196)
rotation = 1.41815
texture = SubResource("AtlasTexture_xytdi")
[node name="seal30" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(56, -33)
rotation = 3.58601
texture = SubResource("AtlasTexture_wdtj8")
[node name="seal31" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(44.4149, -10.4801)
rotation = 3.80853
texture = SubResource("AtlasTexture_71e7e")
[node name="seal32" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1)
position = Vector2(25.0474, 6.01167)
rotation = 4.12819
texture = SubResource("AtlasTexture_01jvt")
[node name="PathRoot" type="Node2D" parent="Control/页面/陆小蝶"]
visible = false
position = Vector2(-309, -163)
[node name="Path2D" type="Path2D" parent="Control/页面/陆小蝶/PathRoot"]

View File

@ -3,28 +3,21 @@ extends Sprite2D
signal finished
@export var area_size := Vector2(60, 60):
set(val):
area_size = val
queue_redraw()
@export var gizmo_outline_color := Color(0.8, 0.3, 0.1, 0.8):
set(val):
gizmo_outline_color = val
queue_redraw()
@export_tool_button("Reset Stamps", "Callable") var reset_action := _debug_reset_stamps
func play() -> void:
visible = true
var tween = create_tween()
tween.tween_interval(3.0)
tween.tween_interval(2.0)
# var final_modulate = Color.PALE_VIOLET_RED
tween.tween_property(self, "self_modulate:a", 0.0, 4.0)
# tween.parallel().tween_property(get_parent(), "modulate", final_modulate, 12.0)
tween = create_tween()
tween.tween_interval(7.0)
# 在小蝶名字消失的末尾(还没完全消失),开始盖章
tween.tween_interval(4.5)
# 小蝶名字消失后再显示其他名字
var interval = 2.0
var interval = 1.0
# var interval = 0.1 # 很快,测试用
var children = $seals.get_children()
# 前四个按顺序,后面的乱序
@ -39,12 +32,12 @@ func play() -> void:
c.visible = false
tween.tween_interval(interval)
tween.tween_callback(_stamp_seal.bind(c))
interval = lerpf(interval, 0.2, 0.35)
interval = lerpf(interval, 0.15, 0.35)
# 最后一个印章消失后,稍加等待,发射完成信号
tween.tween_callback(_final_effect)
tween.tween_interval(4.5)
tween.tween_callback(_jump_scare)
tween.tween_interval(1.5)
tween.tween_interval(1.0)
tween.tween_callback(finished.emit)
# 共 6 画 28 个印章,+前 4 个独立布置,共至少 32 seals
@ -74,7 +67,6 @@ func _final_effect():
func _jump_scare():
var tween = create_tween()
# 毛玻璃模糊 / 熔蜡扭曲
# var e_materaial = $"../effect".material
# tween.tween_property(e_materaial, "shader_parameter/intensity", 0.05, 1.0)
@ -85,16 +77,8 @@ func _jump_scare():
# shading_layer.flash_palette()
# shading_layer.flash_glitch()
var l1 = $DirectionalLight2D
var l2 = $DirectionalLight2D2
var polygon = $"../../Polygon2D"
tween.tween_property(l1, "energy", 1.0, 0.2)
tween.parallel().tween_property(l2, "energy", 2.0, 0.2)
tween.parallel().tween_property(polygon, "color:a", 0.5, 0.1)
tween.tween_property(l1, "energy", 0.0, 0.2)
tween.parallel().tween_property(l2, "energy", 0.0, 0.2)
tween.parallel().tween_property(polygon, "color:a", 0.0, 0.2)
# 闪烁
$AnimationPlayer.play("flash")
# TODO 哈气
SceneManager.pop_debug_dialog_info("音效", "突然哈气")
@ -118,15 +102,3 @@ func _stamp_seal(seal: Sprite2D) -> void:
var origin_scale = seal.scale
create_tween().tween_property(seal, "scale", origin_scale * Vector2(1.05, 1.05), .1)
create_tween().tween_property(seal, "scale", origin_scale * Vector2(1.0, 1.), .1)
func _draw() -> void:
if Engine.is_editor_hint():
# draw gizmo
var area_rect = Rect2(-area_size * 0.5, area_size)
# fill
var fill_color = gizmo_outline_color
fill_color.a = 0.4
draw_rect(area_rect, fill_color)
# outline
draw_rect(area_rect, gizmo_outline_color, false, 1.0)

View File

@ -3,6 +3,8 @@ extends CharacterBody2D
class_name MainPlayer
signal os_finished
@export var camera_marker: CameraFocusMarker
@export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "小小蝶") var character := "吕萍":
set(val):
@ -318,9 +320,11 @@ func pop_os(lines := []):
os_tween.tween_callback(_os_load_line.bind(line))
os_tween.tween_callback(os_label.type_out)
os_tween.tween_interval(duration)
os_tween.tween_callback(os_finished.emit)
os_tween.tween_property(os_contaner, "modulate:a", 0.0, 0.2)
func _os_load_line(line):
os_label.dialogue_line = line

View File

@ -29,7 +29,7 @@ z_index = 5
collision_mask = 2
script = ExtResource("1_3a78y")
running_locked = true
debug_freeze = 7
debug_freeze = 4
metadata/_edit_vertical_guides_ = [-120.0]
metadata/_edit_horizontal_guides_ = [-9.0]

View File

@ -94,7 +94,7 @@ var ANIMATION_CONFIG = {
MOVEMENT_WALKING: [&"c01_小小蝶_walking_l", &"c01_小小蝶_walking_r"],
MOVEMENT_RUNNING: [&"c01_小小蝶_running_l", &"c01_小小蝶_running_r"],
# animation_name, left, right
ACTION_LOOKUP_WALL: [&"", Vector2.ONE, Vector2(0, -37.0), &"c01_小小蝶_抬头_l", &"c01_小小蝶_抬头_r"],
ACTION_LOOKUP_WALL: [&"c01_小小蝶_背面抬头", Vector2.ONE, Vector2(-3.0, -37.0), &"c01_小小蝶_抬头_l", &"c01_小小蝶_抬头_r"],
# 看向橱柜c01_s07 书店外)
5: [&"c01_小小蝶_书店外看向橱窗", Vector2.ONE, Vector2(0, -88.0)],
# 敲门c01_s07 书店外)

View File

@ -59,12 +59,13 @@ func _display_item(prop_key, button):
func _unhandled_input(event: InputEvent) -> void:
# bag 界面接受所有输入事件
get_viewport().set_input_as_handled()
if (
event.is_action_pressed("bag")
or event.is_action_pressed("cancel")
or event.is_action_pressed("escape")
):
get_viewport().set_input_as_handled()
get_tree().paused = false
# SceneManager.unlock_player()
queue_free()

View File

@ -123,7 +123,7 @@ func _on_diary_btn_pressed() -> void:
func _unhandled_key_input(event: InputEvent) -> void:
if not visible:
return
# settings 界面接受所有输入事件
get_viewport().set_input_as_handled()
if event.is_action_pressed("escape"):
exit_settings()
# block the event
get_viewport().set_input_as_handled()