完成书架-生死簿演出(未完成:生死簿落出+小蝶从梯子掉落)

This commit is contained in:
cakipaul 2025-02-09 19:43:35 +08:00
parent f1c40bb47e
commit ea774c12f9
32 changed files with 848 additions and 499 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cdvomnr0fof1"
path="res://.godot/imported/书架参考.png-45e1c04fe6234420e7b69bcdfe2c40cb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/书架参考.png"
dest_files=["res://.godot/imported/书架参考.png-45e1c04fe6234420e7b69bcdfe2c40cb.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: 87 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bbskja06j74v0" uid="uid://bbskja06j74v0"
path="res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" path="res://.godot/imported/书架合并.png-359fbfa0eac5f528bacc31ef5901a754.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/little_game/书架/合并.png" source_file="res://asset/art/little_game/书架_生死簿/书架合并.png"
dest_files=["res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex"] dest_files=["res://.godot/imported/书架合并.png-359fbfa0eac5f528bacc31ef5901a754.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://tuf2xak5sfaj" uid="uid://tuf2xak5sfaj"
path="res://.godot/imported/书架框.png-beb1e0d933ac47aeaaeb6863a57e618f.ctex" path="res://.godot/imported/书架框.png-76cfaf9dd6621fb10bfe5a668edaf186.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/little_game/书架/书架框.png" source_file="res://asset/art/little_game/书架_生死簿/书架框.png"
dest_files=["res://.godot/imported/书架框.png-beb1e0d933ac47aeaaeb6863a57e618f.ctex"] dest_files=["res://.godot/imported/书架框.png-76cfaf9dd6621fb10bfe5a668edaf186.ctex"]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cpv3gtijrho0v"
path="res://.godot/imported/参考1.png-1f0a627d453adabf1bd6b948a930adbb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/参考1.png"
dest_files=["res://.godot/imported/参考1.png-1f0a627d453adabf1bd6b948a930adbb.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: 58 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://xonbguvsrwgs"
path="res://.godot/imported/参考2.png-46b7b5d8af05b868a42df103a9056732.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/参考2.png"
dest_files=["res://.godot/imported/参考2.png-46b7b5d8af05b868a42df103a9056732.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: 37 KiB

View File

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d21etepasofj8" uid="uid://munmy3e4qpcq"
path="res://.godot/imported/书本.png-9024e93192f48c68d0ef5f86a3900152.ctex" path="res://.godot/imported/封面.png-9a7484d0b77021c5aea2cb5c51d4c0f2.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://asset/art/little_game/书架/书本.png" source_file="res://asset/art/little_game/书架_生死簿/封面.png"
dest_files=["res://.godot/imported/书本.png-9024e93192f48c68d0ef5f86a3900152.ctex"] dest_files=["res://.godot/imported/封面.png-9a7484d0b77021c5aea2cb5c51d4c0f2.ctex"]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://w18bpeia713h"
path="res://.godot/imported/生死簿摊开 陆小蝶.png-dde8bafb5310ba786d34e1d772ceb984.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png"
dest_files=["res://.godot/imported/生死簿摊开 陆小蝶.png-dde8bafb5310ba786d34e1d772ceb984.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: 4.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://vqq1hnf2yfat"
path="res://.godot/imported/生死簿摊开 陆小蝶名.png-22ba98bc4ea73382205537ffe5837869.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png"
dest_files=["res://.godot/imported/生死簿摊开 陆小蝶名.png-22ba98bc4ea73382205537ffe5837869.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: 51 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ci1iuxsvpy6qn"
path="res://.godot/imported/生死簿摊开特写 书底.png-73a48ece9dd39d54e867c35c22a95d62.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png"
dest_files=["res://.godot/imported/生死簿摊开特写 书底.png-73a48ece9dd39d54e867c35c22a95d62.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: 7.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cc8117h1lfo1n"
path="res://.godot/imported/生死簿摊开特写 人名.png-25e97c9a136e45c2c8723a9fe9cf6842.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png"
dest_files=["res://.godot/imported/生死簿摊开特写 人名.png-25e97c9a136e45c2c8723a9fe9cf6842.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: 6.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl7byobu28rsb"
path="res://.godot/imported/生死簿摊开特写 印章.png-64a01c09e302d71f5951412e7a28adc9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png"
dest_files=["res://.godot/imported/生死簿摊开特写 印章.png-64a01c09e302d71f5951412e7a28adc9.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

View File

@ -9,7 +9,7 @@
shader = ExtResource("3_er5jo") shader = ExtResource("3_er5jo")
shader_parameter/grey_scale = 0.33 shader_parameter/grey_scale = 0.33
[sub_resource type="Image" id="Image_ra1lb"] [sub_resource type="Image" id="Image_7ef34"]
data = { data = {
"data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
"format": "Lum8", "format": "Lum8",
@ -18,8 +18,8 @@ data = {
"width": 49 "width": 49
} }
[sub_resource type="ImageTexture" id="ImageTexture_o178p"] [sub_resource type="ImageTexture" id="ImageTexture_uplae"]
image = SubResource("Image_ra1lb") image = SubResource("Image_7ef34")
[node name="刮刮乐" type="Sprite2D"] [node name="刮刮乐" type="Sprite2D"]
position = Vector2(127, 138) position = Vector2(127, 138)
@ -34,6 +34,6 @@ offset_left = -24.0
offset_top = 6.0 offset_top = 6.0
offset_right = 25.0 offset_right = 25.0
offset_bottom = 24.0 offset_bottom = 24.0
texture = SubResource("ImageTexture_o178p") texture = SubResource("ImageTexture_uplae")
script = ExtResource("4_wp0ek") script = ExtResource("4_wp0ek")
area_size = Vector2(49, 18) area_size = Vector2(49, 18)

View File

@ -56,7 +56,6 @@ texture = ExtResource("3_l7171")
offset = Vector2(0, -158) offset = Vector2(0, -158)
[node name="portal_right" parent="Ground/DeployLayer" index="1"] [node name="portal_right" parent="Ground/DeployLayer" index="1"]
immediately = false
target_scene = "c02_s08" target_scene = "c02_s08"
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_ulvsd")] [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_ulvsd")]
@ -66,7 +65,6 @@ portal_name = "1"
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_ulvsd")] [node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_ulvsd")]
position = Vector2(995, 28) position = Vector2(995, 28)
debug_note = "c01_s07 的 2 号门通往书店" debug_note = "c01_s07 的 2 号门通往书店"
immediately = false
portal_name = "2" portal_name = "2"
target_scene = "c01_s08" target_scene = "c01_s08"
target_portal = "left" target_portal = "left"

View File

@ -22,7 +22,9 @@ func _on_ground_ready() -> void:
mask = $"../DeployLayer/Mask" mask = $"../DeployLayer/Mask"
var shelf_game_success = ArchiveManager.archive.get_global_value("shelf_game_success") var shelf_game_success = ArchiveManager.archive.get_global_value("shelf_game_success")
if shelf_game_success: if shelf_game_success:
_on_game_success() _game_success_setup()
else:
$"../DeployLayer/自动跟随的老鼠".visible = false
var game_secne = preload("res://scene/little_game/书架/书架.tscn") var game_secne = preload("res://scene/little_game/书架/书架.tscn")
@ -44,12 +46,18 @@ func play_game() -> void:
func _on_game_exiting() -> void: func _on_game_exiting() -> void:
if GlobalConfig.DEBUG: if GlobalConfig.DEBUG:
print("书架游戏 exiting") print("书架游戏 exiting")
create_tween().tween_property(mask, "color:a", 0.0, 2.0).from(1.0) create_tween().tween_property(mask, "color:a", 0.0, 1.0).from(1.0)
SceneManager.release_player() SceneManager.release_player()
func _on_game_success() -> void: func _on_game_success() -> void:
ArchiveManager.archive.set_global_entry("shelf_game_success", true) ArchiveManager.archive.set_global_entry("shelf_game_success", true)
_game_success_setup()
# TODO 播放小蝶从书架跌倒的动画
SceneManager.pop_debug_dialog_info("美术", "小蝶从书架跌倒")
func _game_success_setup() -> void:
_set_portal_target_to_wierd_street() _set_portal_target_to_wierd_street()
# 书架游戏成功后,展示老鼠 # 书架游戏成功后,展示老鼠
$"../DeployLayer/自动跟随的老鼠".visible = true $"../DeployLayer/自动跟随的老鼠".visible = true

View File

@ -1,4 +1,4 @@
# @tool @tool
extends CanvasLayer extends CanvasLayer
signal exiting signal exiting
@ -7,6 +7,14 @@ signal success
const NON_SELECTED = [-1, -1] const NON_SELECTED = [-1, -1]
@export var shuffle_times := 20 @export var shuffle_times := 20
@export var debug_relocate := false:
set(value):
debug_relocate = false
if Engine.is_editor_hint():
_init_answer_and_connect_signals()
_measure_width_by_row()
for row in range(3):
_relocate_books(row)
@onready var sfx_select = $SfxSelect as Sfx @onready var sfx_select = $SfxSelect as Sfx
@onready var sfx_interchange = $SfxInterchange as Sfx @onready var sfx_interchange = $SfxInterchange as Sfx
@ -19,6 +27,7 @@ var selected_book := NON_SELECTED:
set(value): set(value):
if selected_book == value: if selected_book == value:
return return
# 在 suffling 时不允许改变 selected_book
if suffling: if suffling:
selected_book = value selected_book = value
return return
@ -27,21 +36,21 @@ var selected_book := NON_SELECTED:
if value != NON_SELECTED: if value != NON_SELECTED:
_toggle_book(true, value[0], value[1]) _toggle_book(true, value[0], value[1])
selected_book = value selected_book = value
var gameover = false
func _ready() -> void: func _ready() -> void:
# init answer first # init answer first
_init_answer_and_connect_signals() _init_answer_and_connect_signals()
if Engine.is_editor_hint():
return
_measure_width_by_row() _measure_width_by_row()
# shuffle at the end # shuffle at the end
if Engine.is_editor_hint(): _shuffle_books()
for row in range(3):
_relocate_books(row)
else:
_shuffle_books()
func _init_answer_and_connect_signals() -> void: func _init_answer_and_connect_signals() -> void:
current_answer.clear()
for row in range(3): for row in range(3):
var r_size = get_node("./Shelf/Layer" + str(row)).get_child_count() var r_size = get_node("./Shelf/Layer" + str(row)).get_child_count()
# current_answer append a r_size arr # current_answer append a r_size arr
@ -49,25 +58,31 @@ func _init_answer_and_connect_signals() -> void:
for id in range(r_size): for id in range(r_size):
arr.append(id) arr.append(id)
var book = _get_book_by_id(row, id) var book = _get_book_by_id(row, id)
book.get_node("BookButton").pressed.connect(_on_book_pressed.bind(row, id)) if not Engine.is_editor_hint():
book.get_node("BookButton").pressed.connect(_on_book_pressed.bind(row, id))
current_answer.append(arr) current_answer.append(arr)
func _measure_width_by_row() -> void: func _measure_width_by_row() -> void:
# 书本间的额外间隙,用于调整书本之间的间隔
var extra_gap = [2., 3., 4.]
book_width_by_row = []
for row in range(3): for row in range(3):
var length = current_answer[row].size() var length = current_answer[row].size()
var width_arr = [] var width_arr = []
for col in range(length): for col in range(length):
var book_btn = _get_book_by_id(row, col).get_node("BookButton") as TextureButton var book_btn = _get_book_by_id(row, col).get_node("BookButton") as TextureButton
# book_btn.position.y = -book_btn.texture_normal.get_height() width_arr.append(book_btn.texture_normal.get_width() + extra_gap[row])
# book_btn.size = book_btn.texture_normal.get_size()
# add 1 to avoid the gap between books
width_arr.append(book_btn.texture_normal.get_width() + 1)
book_width_by_row.append(width_arr) book_width_by_row.append(width_arr)
func _shuffle_books() -> void: func _shuffle_books() -> void:
selected_book = NON_SELECTED selected_book = NON_SELECTED
if GlobalConfig.DEBUG:
SceneManager.pop_debug_dialog_info(
"备注", "debug模式每列随机洗牌 1 次,正常模式每列随机洗牌 " + str(shuffle_times) + ""
)
shuffle_times = 1
suffling = true suffling = true
rand_from_seed(Time.get_ticks_usec()) rand_from_seed(Time.get_ticks_usec())
for row in range(3): for row in range(3):
@ -84,6 +99,8 @@ func _shuffle_books() -> void:
func _on_book_pressed(row: int, id: int) -> void: func _on_book_pressed(row: int, id: int) -> void:
if gameover:
return
var col = current_answer[row].find(id) var col = current_answer[row].find(id)
if selected_book == NON_SELECTED: if selected_book == NON_SELECTED:
selected_book = [row, col] selected_book = [row, col]
@ -170,22 +187,35 @@ func _check_answer() -> void:
for col in range(size2): for col in range(size2):
if row2[col] != size2 - 1 - col: if row2[col] != size2 - 1 - col:
return return
# 最后一行按色块排列0-6 蓝色7个在一起7-11 红色5个在一起12-17 黄色6个在一起 # 第三行正序或者倒序都可以
var row3 = current_answer[2] var _row3 = current_answer[2]
# 0: blue, 1: red, 2: yellow var _size3 = _row3.size()
var visited = [7, 5, 6] if _row3[0] == 0:
var visiting_init = true # 正序
var visiting = -1 for col in range(1, _size3):
for col in range(row3.size()): if _row3[col] != col:
var color = _get_color(row3[col]) return
if visiting_init: else:
visiting = color # 倒序
visiting_init = false for col in range(_size3):
if color != visiting: if _row3[col] != _size3 - 1 - col:
return return
visited[color] -= 1 # # 最后一行按色块排列0-6 蓝色7个在一起7-11 红色5个在一起12-17 黄色6个在一起
if visited[color] == 0: # var row3 = current_answer[2]
visiting_init = true # # 0: blue, 1: red, 2: yellow
# var visited = [7, 5, 6]
# var visiting_init = true
# var visiting = -1
# for col in range(row3.size()):
# var color = _get_color(row3[col])
# if visiting_init:
# visiting = color
# visiting_init = false
# if color != visiting:
# return
# visited[color] -= 1
# if visited[color] == 0:
# visiting_init = true
# success # success
_success() _success()
@ -202,9 +232,19 @@ func _get_color(index: int) -> int:
func _success() -> void: func _success() -> void:
print("Success!") gameover = true
#TODO print("书架游戏通关! 播放生死簿动画")
# TODO 生死簿倒下的动画
SceneManager.pop_debug_dialog_info("美术", "生死簿倒下的动画")
$"生死簿".show()
# 完成后释放信号
$"生死簿".finished.connect(_on_success_finished)
# 生死簿阅读完成后
func _on_success_finished() -> void:
success.emit() success.emit()
# exit
get_parent().remove_child(self)
func _unhandled_input(event: InputEvent) -> void: func _unhandled_input(event: InputEvent) -> void:

View File

@ -1,201 +1,168 @@
[gd_scene load_steps=54 format=3 uid="uid://fwfr0b2sylwx"] [gd_scene load_steps=46 format=3 uid="uid://fwfr0b2sylwx"]
[ext_resource type="Script" path="res://scene/little_game/书架/书架.gd" id="1_8af23"] [ext_resource type="Script" path="res://scene/little_game/书架/书架.gd" id="1_8af23"]
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_03tyv"] [ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_03tyv"]
[ext_resource type="AudioStream" uid="uid://bi4hcr04231qr" path="res://asset/audio/sfx/ui/挂画查看.mp3" id="3_elhhm"] [ext_resource type="AudioStream" uid="uid://bi4hcr04231qr" path="res://asset/audio/sfx/ui/挂画查看.mp3" id="3_elhhm"]
[ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/ui/物品查看.mp3" id="4_0ihy7"] [ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/ui/物品查看.mp3" id="4_0ihy7"]
[ext_resource type="Texture2D" uid="uid://tuf2xak5sfaj" path="res://asset/art/little_game/书架/书架框.png" id="5_i131t"] [ext_resource type="PackedScene" uid="uid://bl5pohc77hi43" path="res://scene/little_game/书架/生死簿.tscn" id="6_mhajy"]
[ext_resource type="Texture2D" uid="uid://bbskja06j74v0" path="res://asset/art/little_game/书架/合并.png" id="6_pxxx5"] [ext_resource type="Texture2D" uid="uid://bbskja06j74v0" path="res://asset/art/little_game/书架_生死簿/书架合并.png" id="6_pxxx5"]
[sub_resource type="AtlasTexture" id="AtlasTexture_6hdac"]
atlas = ExtResource("6_pxxx5")
region = Rect2(15, 25, 576, 317)
[sub_resource type="AtlasTexture" id="AtlasTexture_c3g4t"] [sub_resource type="AtlasTexture" id="AtlasTexture_c3g4t"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(22, 484, 15, 104) region = Rect2(26, 380, 14, 76)
[sub_resource type="AtlasTexture" id="AtlasTexture_pmg84"] [sub_resource type="AtlasTexture" id="AtlasTexture_pmg84"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(57, 512, 14, 76) region = Rect2(50, 380, 15, 76)
[sub_resource type="AtlasTexture" id="AtlasTexture_5xs8h"] [sub_resource type="AtlasTexture" id="AtlasTexture_5xs8h"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(89, 512, 14, 76) region = Rect2(76, 363, 14, 93)
[sub_resource type="AtlasTexture" id="AtlasTexture_4cxbt"] [sub_resource type="AtlasTexture" id="AtlasTexture_4cxbt"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(126, 495, 14, 93) region = Rect2(96, 375, 5, 81)
[sub_resource type="AtlasTexture" id="AtlasTexture_x1voy"] [sub_resource type="AtlasTexture" id="AtlasTexture_x1voy"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(173, 507, 15, 81) region = Rect2(106, 375, 8, 81)
[sub_resource type="AtlasTexture" id="AtlasTexture_s637y"] [sub_resource type="AtlasTexture" id="AtlasTexture_s637y"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(225, 506, 28, 82) region = Rect2(122, 374, 20, 82)
[sub_resource type="AtlasTexture" id="AtlasTexture_2rk7g"] [sub_resource type="AtlasTexture" id="AtlasTexture_2rk7g"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(279, 495, 14, 93) region = Rect2(152, 363, 14, 93)
[sub_resource type="AtlasTexture" id="AtlasTexture_uo0qb"] [sub_resource type="AtlasTexture" id="AtlasTexture_uo0qb"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(320, 489, 14, 99) region = Rect2(174, 357, 14, 99)
[sub_resource type="AtlasTexture" id="AtlasTexture_v6h51"] [sub_resource type="AtlasTexture" id="AtlasTexture_v6h51"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(487, 489, 14, 99) region = Rect2(198, 358, 23, 98)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_dg6aw"] [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_dg6aw"]
load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex"
[sub_resource type="AtlasTexture" id="AtlasTexture_fno8t"] [sub_resource type="AtlasTexture" id="AtlasTexture_fno8t"]
atlas = SubResource("CompressedTexture2D_dg6aw") atlas = SubResource("CompressedTexture2D_dg6aw")
region = Rect2(443, 486, 14, 102) region = Rect2(228, 354, 14, 102)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_86iw8"] [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_86iw8"]
load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex"
[sub_resource type="AtlasTexture" id="AtlasTexture_sqqma"] [sub_resource type="AtlasTexture" id="AtlasTexture_sqqma"]
atlas = SubResource("CompressedTexture2D_86iw8") atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(531, 493, 15, 95) region = Rect2(251, 357, 13, 99)
[sub_resource type="AtlasTexture" id="AtlasTexture_2v8gr"] [sub_resource type="AtlasTexture" id="AtlasTexture_2v8gr"]
atlas = SubResource("CompressedTexture2D_86iw8") atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(579, 495, 19, 93) region = Rect2(271, 362, 15, 94)
[sub_resource type="AtlasTexture" id="AtlasTexture_g33pn"] [sub_resource type="AtlasTexture" id="AtlasTexture_g33pn"]
atlas = SubResource("CompressedTexture2D_86iw8") atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(629, 495, 14, 93) region = Rect2(294, 364, 19, 92)
[sub_resource type="AtlasTexture" id="AtlasTexture_7bg4e"] [sub_resource type="AtlasTexture" id="AtlasTexture_7bg4e"]
atlas = SubResource("CompressedTexture2D_86iw8") atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(671, 519, 14, 69) region = Rect2(321, 363, 14, 93)
[sub_resource type="AtlasTexture" id="AtlasTexture_yyofn"] [sub_resource type="AtlasTexture" id="AtlasTexture_yyofn"]
atlas = SubResource("CompressedTexture2D_86iw8") atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(712, 502, 14, 85) region = Rect2(344, 387, 14, 69)
[sub_resource type="AtlasTexture" id="AtlasTexture_il3nv"] [sub_resource type="AtlasTexture" id="AtlasTexture_il3nv"]
atlas = SubResource("CompressedTexture2D_86iw8") atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(755, 505, 16, 82) region = Rect2(366, 371, 14, 85)
[sub_resource type="AtlasTexture" id="AtlasTexture_485b4"]
atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(385, 374, 16, 82)
[sub_resource type="AtlasTexture" id="AtlasTexture_bt0bc"]
atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(409, 363, 15, 93)
[sub_resource type="AtlasTexture" id="AtlasTexture_wq4ug"]
atlas = SubResource("CompressedTexture2D_86iw8")
region = Rect2(431, 375, 15, 81)
[sub_resource type="AtlasTexture" id="AtlasTexture_b3xvs"] [sub_resource type="AtlasTexture" id="AtlasTexture_b3xvs"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(21, 649, 18, 62) region = Rect2(36, 502, 18, 62)
[sub_resource type="AtlasTexture" id="AtlasTexture_7ejmc"] [sub_resource type="AtlasTexture" id="AtlasTexture_7ejmc"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(58, 646, 12, 65) region = Rect2(62, 499, 12, 65)
[sub_resource type="AtlasTexture" id="AtlasTexture_pv5xt"] [sub_resource type="AtlasTexture" id="AtlasTexture_pv5xt"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(86, 643, 11, 68) region = Rect2(82, 496, 11, 68)
[sub_resource type="AtlasTexture" id="AtlasTexture_0m1py"] [sub_resource type="AtlasTexture" id="AtlasTexture_0m1py"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(112, 639, 15, 72) region = Rect2(100, 492, 15, 72)
[sub_resource type="AtlasTexture" id="AtlasTexture_ewy65"] [sub_resource type="AtlasTexture" id="AtlasTexture_ewy65"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(146, 635, 17, 76) region = Rect2(121, 490, 5, 74)
[sub_resource type="AtlasTexture" id="AtlasTexture_p1i0i"] [sub_resource type="AtlasTexture" id="AtlasTexture_p1i0i"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(180, 628, 16, 83) region = Rect2(133, 488, 10, 76)
[sub_resource type="AtlasTexture" id="AtlasTexture_qjlqs"] [sub_resource type="AtlasTexture" id="AtlasTexture_qjlqs"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(219, 625, 9, 86) region = Rect2(150, 484, 12, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_bef8d"] [sub_resource type="AtlasTexture" id="AtlasTexture_bef8d"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(247, 620, 9, 91) region = Rect2(170, 481, 5, 83)
[sub_resource type="AtlasTexture" id="AtlasTexture_tmibm"] [sub_resource type="AtlasTexture" id="AtlasTexture_tmibm"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(274, 616, 24, 95) region = Rect2(183, 478, 9, 86)
[sub_resource type="AtlasTexture" id="AtlasTexture_niqsg"] [sub_resource type="AtlasTexture" id="AtlasTexture_niqsg"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(317, 612, 25, 99) region = Rect2(202, 473, 9, 91)
[sub_resource type="AtlasTexture" id="AtlasTexture_lqh8e"]
atlas = ExtResource("6_pxxx5")
region = Rect2(361, 609, 11, 102)
[sub_resource type="AtlasTexture" id="AtlasTexture_4i6n2"] [sub_resource type="AtlasTexture" id="AtlasTexture_4i6n2"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(414, 624, 13, 87) region = Rect2(326, 477, 13, 97)
[sub_resource type="AtlasTexture" id="AtlasTexture_3jfnd"] [sub_resource type="AtlasTexture" id="AtlasTexture_3jfnd"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(445, 628, 15, 83) region = Rect2(356, 478, 13, 96)
[sub_resource type="AtlasTexture" id="AtlasTexture_5j1oq"] [sub_resource type="AtlasTexture" id="AtlasTexture_5j1oq"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(479, 613, 12, 98) region = Rect2(383, 475, 15, 99)
[sub_resource type="AtlasTexture" id="AtlasTexture_e5eo5"] [sub_resource type="AtlasTexture" id="AtlasTexture_e5eo5"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(512, 621, 13, 90) region = Rect2(407, 477, 13, 97)
[sub_resource type="AtlasTexture" id="AtlasTexture_sungh"] [sub_resource type="AtlasTexture" id="AtlasTexture_sungh"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(544, 621, 13, 90) region = Rect2(431, 477, 13, 97)
[sub_resource type="AtlasTexture" id="AtlasTexture_yqrs8"] [sub_resource type="AtlasTexture" id="AtlasTexture_yqrs8"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(574, 621, 13, 90) region = Rect2(457, 478, 13, 96)
[sub_resource type="AtlasTexture" id="AtlasTexture_jrkcq"] [sub_resource type="AtlasTexture" id="AtlasTexture_jrkcq"]
atlas = ExtResource("6_pxxx5") atlas = ExtResource("6_pxxx5")
region = Rect2(610, 624, 13, 87) region = Rect2(481, 477, 13, 97)
[sub_resource type="AtlasTexture" id="AtlasTexture_2g3qi"]
atlas = ExtResource("6_pxxx5")
region = Rect2(646, 628, 15, 83)
[sub_resource type="AtlasTexture" id="AtlasTexture_tf04m"]
atlas = ExtResource("6_pxxx5")
region = Rect2(683, 613, 13, 98)
[sub_resource type="AtlasTexture" id="AtlasTexture_wsiwo"]
atlas = ExtResource("6_pxxx5")
region = Rect2(723, 621, 13, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_qbqho"]
atlas = ExtResource("6_pxxx5")
region = Rect2(767, 621, 13, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_ik73b"]
atlas = ExtResource("6_pxxx5")
region = Rect2(811, 621, 13, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_rwsmd"]
atlas = ExtResource("6_pxxx5")
region = Rect2(858, 624, 13, 87)
[sub_resource type="AtlasTexture" id="AtlasTexture_2tddc"]
atlas = ExtResource("6_pxxx5")
region = Rect2(895, 628, 14, 83)
[sub_resource type="AtlasTexture" id="AtlasTexture_mdq4x"]
atlas = ExtResource("6_pxxx5")
region = Rect2(944, 616, 13, 95)
[sub_resource type="AtlasTexture" id="AtlasTexture_iwv1b"]
atlas = ExtResource("6_pxxx5")
region = Rect2(988, 621, 12, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_lhfli"]
atlas = ExtResource("6_pxxx5")
region = Rect2(1030, 621, 13, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_6p2po"]
atlas = ExtResource("6_pxxx5")
region = Rect2(1077, 621, 13, 90)
[node name="书架" type="CanvasLayer"] [node name="书架" type="CanvasLayer"]
script = ExtResource("1_8af23") script = ExtResource("1_8af23")
shuffle_times = 1
[node name="SfxInterchange" parent="." instance=ExtResource("3_03tyv")] [node name="SfxInterchange" parent="." instance=ExtResource("3_03tyv")]
stream = ExtResource("3_elhhm") stream = ExtResource("3_elhhm")
@ -207,15 +174,15 @@ file = "物品查看.mp3"
[node name="Shelf" type="Sprite2D" parent="."] [node name="Shelf" type="Sprite2D" parent="."]
position = Vector2(283, 160) position = Vector2(283, 160)
texture = ExtResource("5_i131t") texture = SubResource("AtlasTexture_6hdac")
[node name="Layer0" type="Control" parent="Shelf"] [node name="Layer0" type="Control" parent="Shelf"]
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 0
offset_left = -126.0 offset_left = -142.0
offset_top = -10.0 offset_top = -7.0
offset_right = -126.0 offset_right = -142.0
offset_bottom = -10.0 offset_bottom = -7.0
scale = Vector2(0.9, 0.9) scale = Vector2(0.9, 0.9)
[node name="Book0" type="Node2D" parent="Shelf/Layer0"] [node name="Book0" type="Node2D" parent="Shelf/Layer0"]
@ -225,8 +192,8 @@ clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -104.0 offset_top = -76.0
offset_right = 15.0 offset_right = 14.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_c3g4t") texture_normal = SubResource("AtlasTexture_c3g4t")
@ -239,38 +206,38 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -76.0 offset_top = -76.0
offset_right = 14.0 offset_right = 15.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_pmg84") texture_normal = SubResource("AtlasTexture_pmg84")
[node name="Book2" type="Node2D" parent="Shelf/Layer0"] [node name="Book2" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(31, 0) position = Vector2(33, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book2"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book2"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -76.0
offset_right = 14.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_5xs8h")
[node name="Book3" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(46, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book3"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -93.0 offset_top = -93.0
offset_right = 14.0 offset_right = 14.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_5xs8h")
[node name="Book3" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(49, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book3"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -81.0
offset_right = 5.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_4cxbt") texture_normal = SubResource("AtlasTexture_4cxbt")
[node name="Book4" type="Node2D" parent="Shelf/Layer0"] [node name="Book4" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(61, 0) position = Vector2(56, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book4"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book4"]
clip_contents = true clip_contents = true
@ -278,12 +245,12 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -81.0 offset_top = -81.0
offset_right = 15.0 offset_right = 8.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_x1voy") texture_normal = SubResource("AtlasTexture_x1voy")
[node name="Book5" type="Node2D" parent="Shelf/Layer0"] [node name="Book5" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(77, 0) position = Vector2(66, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book5"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book5"]
clip_contents = true clip_contents = true
@ -291,12 +258,12 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -82.0 offset_top = -82.0
offset_right = 28.0 offset_right = 20.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_s637y") texture_normal = SubResource("AtlasTexture_s637y")
[node name="Book6" type="Node2D" parent="Shelf/Layer0"] [node name="Book6" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(106, 0) position = Vector2(88, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book6"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book6"]
clip_contents = true clip_contents = true
@ -309,7 +276,7 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_2rk7g") texture_normal = SubResource("AtlasTexture_2rk7g")
[node name="Book7" type="Node2D" parent="Shelf/Layer0"] [node name="Book7" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(121, 0) position = Vector2(104, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book7"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book7"]
clip_contents = true clip_contents = true
@ -322,7 +289,7 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_uo0qb") texture_normal = SubResource("AtlasTexture_uo0qb")
[node name="Book8" type="Node2D" parent="Shelf/Layer0"] [node name="Book8" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(136, 0) position = Vector2(120, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book8"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book8"]
clip_contents = true clip_contents = true
@ -330,12 +297,12 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -99.0 offset_top = -99.0
offset_right = 14.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_v6h51") texture_normal = SubResource("AtlasTexture_v6h51")
[node name="Book9" type="Node2D" parent="Shelf/Layer0"] [node name="Book9" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(151, 0) position = Vector2(145, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book9"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book9"]
clip_contents = true clip_contents = true
@ -348,7 +315,7 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_fno8t") texture_normal = SubResource("AtlasTexture_fno8t")
[node name="Book10" type="Node2D" parent="Shelf/Layer0"] [node name="Book10" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(166, 0) position = Vector2(161, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book10"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book10"]
clip_contents = true clip_contents = true
@ -356,38 +323,38 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -99.0 offset_top = -99.0
offset_right = 14.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_v6h51") texture_normal = SubResource("AtlasTexture_sqqma")
[node name="Book11" type="Node2D" parent="Shelf/Layer0"] [node name="Book11" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(181, 0) position = Vector2(176, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book11"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book11"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -95.0 offset_top = -94.0
offset_right = 15.0 offset_right = 15.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_sqqma") texture_normal = SubResource("AtlasTexture_2v8gr")
[node name="Book12" type="Node2D" parent="Shelf/Layer0"] [node name="Book12" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(197, 0) position = Vector2(193, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book12"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book12"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -93.0 offset_top = -92.0
offset_right = 19.0 offset_right = 19.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_2v8gr") texture_normal = SubResource("AtlasTexture_g33pn")
[node name="Book13" type="Node2D" parent="Shelf/Layer0"] [node name="Book13" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(217, 0) position = Vector2(214, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book13"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book13"]
clip_contents = true clip_contents = true
@ -397,10 +364,10 @@ anchor_bottom = 1.0
offset_top = -93.0 offset_top = -93.0
offset_right = 14.0 offset_right = 14.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_g33pn") texture_normal = SubResource("AtlasTexture_7bg4e")
[node name="Book14" type="Node2D" parent="Shelf/Layer0"] [node name="Book14" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(232, 0) position = Vector2(230, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book14"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book14"]
clip_contents = true clip_contents = true
@ -410,10 +377,10 @@ anchor_bottom = 1.0
offset_top = -69.0 offset_top = -69.0
offset_right = 14.0 offset_right = 14.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_7bg4e") texture_normal = SubResource("AtlasTexture_yyofn")
[node name="Book15" type="Node2D" parent="Shelf/Layer0"] [node name="Book15" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(247, 0) position = Vector2(246, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book15"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book15"]
clip_contents = true clip_contents = true
@ -423,7 +390,7 @@ anchor_bottom = 1.0
offset_top = -85.0 offset_top = -85.0
offset_right = 14.0 offset_right = 14.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_yyofn") texture_normal = SubResource("AtlasTexture_il3nv")
[node name="Book16" type="Node2D" parent="Shelf/Layer0"] [node name="Book16" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(262, 0) position = Vector2(262, 0)
@ -433,20 +400,44 @@ clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -0.888879 offset_top = -82.0
offset_top = -82.2222 offset_right = 16.0
offset_right = 15.1111
offset_bottom = -0.222221
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_il3nv") texture_normal = SubResource("AtlasTexture_485b4")
[node name="Book17" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(280, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book17"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -93.0
offset_right = 15.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_bt0bc")
[node name="Book18" type="Node2D" parent="Shelf/Layer0"]
position = Vector2(297, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book18"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -81.0
offset_right = 15.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_wq4ug")
[node name="Layer1" type="Control" parent="Shelf"] [node name="Layer1" type="Control" parent="Shelf"]
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 0
offset_left = -226.0 offset_left = -243.0
offset_top = 112.0 offset_top = 115.0
offset_right = -226.0 offset_right = -243.0
offset_bottom = 112.0 offset_bottom = 115.0
scale = Vector2(0.9, 0.9) scale = Vector2(0.9, 0.9)
[node name="Book0" type="Node2D" parent="Shelf/Layer1"] [node name="Book0" type="Node2D" parent="Shelf/Layer1"]
@ -462,7 +453,7 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_b3xvs") texture_normal = SubResource("AtlasTexture_b3xvs")
[node name="Book1" type="Node2D" parent="Shelf/Layer1"] [node name="Book1" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(19, 0) position = Vector2(21, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book1"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book1"]
clip_contents = true clip_contents = true
@ -475,7 +466,7 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_7ejmc") texture_normal = SubResource("AtlasTexture_7ejmc")
[node name="Book2" type="Node2D" parent="Shelf/Layer1"] [node name="Book2" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(32, 0) position = Vector2(36, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book2"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book2"]
clip_contents = true clip_contents = true
@ -488,7 +479,7 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_pv5xt") texture_normal = SubResource("AtlasTexture_pv5xt")
[node name="Book3" type="Node2D" parent="Shelf/Layer1"] [node name="Book3" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(44, 0) position = Vector2(50, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book3"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book3"]
clip_contents = true clip_contents = true
@ -501,48 +492,74 @@ grow_vertical = 0
texture_normal = SubResource("AtlasTexture_0m1py") texture_normal = SubResource("AtlasTexture_0m1py")
[node name="Book4" type="Node2D" parent="Shelf/Layer1"] [node name="Book4" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(60, 0) position = Vector2(68, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book4"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book4"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -76.0 offset_top = -74.0
offset_right = 17.0 offset_right = 5.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_ewy65") texture_normal = SubResource("AtlasTexture_ewy65")
[node name="Book5" type="Node2D" parent="Shelf/Layer1"] [node name="Book5" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(78, 0) position = Vector2(76, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book5"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book5"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -83.0 offset_top = -76.0
offset_right = 16.0 offset_right = 10.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_p1i0i") texture_normal = SubResource("AtlasTexture_p1i0i")
[node name="Book6" type="Node2D" parent="Shelf/Layer1"] [node name="Book6" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(95, 0) position = Vector2(89, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book6"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book6"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -80.0
offset_right = 12.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_qjlqs")
[node name="Book7" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(104, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book7"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -83.0
offset_right = 5.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_bef8d")
[node name="Book8" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(112, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book8"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -86.0 offset_top = -86.0
offset_right = 9.0 offset_right = 9.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_qjlqs") texture_normal = SubResource("AtlasTexture_tmibm")
[node name="Book7" type="Node2D" parent="Shelf/Layer1"] [node name="Book9" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(105, 0) position = Vector2(124, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book7"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book9"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
@ -550,52 +567,15 @@ anchor_bottom = 1.0
offset_top = -91.0 offset_top = -91.0
offset_right = 9.0 offset_right = 9.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_bef8d")
[node name="Book8" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(115, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book8"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -95.0
offset_right = 24.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_tmibm")
[node name="Book9" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(140, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book9"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -99.0
offset_right = 25.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_niqsg") texture_normal = SubResource("AtlasTexture_niqsg")
[node name="Book10" type="Node2D" parent="Shelf/Layer1"]
position = Vector2(166, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book10"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -102.0
offset_right = 11.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_lqh8e")
[node name="Layer2" type="Control" parent="Shelf"] [node name="Layer2" type="Control" parent="Shelf"]
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 0
offset_top = 112.0 offset_left = 137.0
offset_bottom = 112.0 offset_top = 114.0
offset_right = 137.0
offset_bottom = 114.0
scale = Vector2(0.9, 0.9) scale = Vector2(0.9, 0.9)
[node name="Book0" type="Node2D" parent="Shelf/Layer2"] [node name="Book0" type="Node2D" parent="Shelf/Layer2"]
@ -605,232 +585,89 @@ clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -87.0 offset_top = -97.0
offset_right = 13.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_4i6n2") texture_normal = SubResource("AtlasTexture_4i6n2")
[node name="Book1" type="Node2D" parent="Shelf/Layer2"] [node name="Book1" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(14, 0) position = Vector2(17, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book1"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book1"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -83.0 offset_top = -96.0
offset_right = 15.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_3jfnd") texture_normal = SubResource("AtlasTexture_3jfnd")
[node name="Book2" type="Node2D" parent="Shelf/Layer2"] [node name="Book2" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(30, 0) position = Vector2(34, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book2"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book2"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -98.0 offset_top = -99.0
offset_right = 12.0 offset_right = 15.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_5j1oq") texture_normal = SubResource("AtlasTexture_5j1oq")
[node name="Book3" type="Node2D" parent="Shelf/Layer2"] [node name="Book3" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(43, 0) position = Vector2(53, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book3"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book3"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -90.0 offset_top = -97.0
offset_right = 13.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_e5eo5") texture_normal = SubResource("AtlasTexture_e5eo5")
[node name="Book4" type="Node2D" parent="Shelf/Layer2"] [node name="Book4" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(57, 0) position = Vector2(70, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book4"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book4"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -90.0 offset_top = -97.0
offset_right = 13.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_sungh") texture_normal = SubResource("AtlasTexture_sungh")
[node name="Book5" type="Node2D" parent="Shelf/Layer2"] [node name="Book5" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(71, 0) position = Vector2(87, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book5"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book5"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -90.0 offset_top = -96.0
offset_right = 13.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_yqrs8") texture_normal = SubResource("AtlasTexture_yqrs8")
[node name="Book6" type="Node2D" parent="Shelf/Layer2"] [node name="Book6" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(85, 0) position = Vector2(104, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book6"] [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book6"]
clip_contents = true clip_contents = true
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = -87.0 offset_top = -97.0
offset_right = 13.0 offset_right = 13.0
grow_vertical = 0 grow_vertical = 0
texture_normal = SubResource("AtlasTexture_jrkcq") texture_normal = SubResource("AtlasTexture_jrkcq")
[node name="Book7" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(99, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book7"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -83.0
offset_right = 15.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_2g3qi")
[node name="Book8" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(115, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book8"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -98.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_tf04m")
[node name="Book9" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(129, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book9"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -90.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_wsiwo")
[node name="Book10" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(143, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book10"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -90.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_qbqho")
[node name="Book11" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(157, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book11"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -90.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_ik73b")
[node name="Book12" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(171, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book12"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -87.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_rwsmd")
[node name="Book13" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(185, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book13"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -83.0
offset_right = 14.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_2tddc")
[node name="Book14" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(200, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book14"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -95.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_mdq4x")
[node name="Book15" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(214, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book15"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -90.0
offset_right = 12.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_iwv1b")
[node name="Book16" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(227, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book16"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -90.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_lhfli")
[node name="Book17" type="Node2D" parent="Shelf/Layer2"]
position = Vector2(241, 0)
[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book17"]
clip_contents = true
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -90.0
offset_right = 13.0
grow_vertical = 0
texture_normal = SubResource("AtlasTexture_6p2po")
[node name="ColorRectTop" type="ColorRect" parent="."] [node name="ColorRectTop" type="ColorRect" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
@ -861,3 +698,6 @@ grow_horizontal = 2
grow_vertical = 0 grow_vertical = 0
mouse_filter = 2 mouse_filter = 2
color = Color(0, 0, 0, 1) color = Color(0, 0, 0, 1)
[node name="生死簿" parent="." instance=ExtResource("6_mhajy")]
visible = false

View File

@ -1,10 +1,77 @@
extends CanvasLayer extends CanvasLayer
signal finished
@onready var paperback = %"封面"
@onready var paper = %"页面"
@onready var p1 = %"p1"
@onready var signature = %"陆小蝶" @onready var signature = %"陆小蝶"
var mode := 0:
set(value):
mode = value
match mode:
0:
open_paperback()
1:
open_p1()
2:
open_signature()
mode = clampi(mode, 0, 3)
if mode == 0:
%ButtonPaperback.visible = true
%ButtonLeft.visible = false
%ButtonRight.visible = false
else:
%ButtonPaperback.visible = false
%ButtonLeft.visible = true
%ButtonRight.visible = true
func _ready() -> void: func _ready() -> void:
layer = GlobalConfig.LAYER_LITTLE_GAME layer = GlobalConfig.LAYER_LITTLE_GAME
# SceneManager.pop_center_notification(tr("input_拼凑信件")) mode = 0
%ButtonPaperback.pressed.connect(_on_button_pressed.bind(1))
%ButtonLeft.pressed.connect(_on_button_pressed.bind(-1))
%ButtonRight.pressed.connect(_on_button_pressed.bind(1))
signature.finished.connect(finished.emit)
visibility_changed.connect(_on_visibility_changed)
func _on_visibility_changed() -> void:
if visible:
create_tween().tween_property($Control, "modulate:a", 1.0, 1.0).from(0.0)
var press_time := 0.0
func _on_button_pressed(direction: int) -> void:
# 0: paperback, 1: p1, 2: signature
# 第二页后不再翻页
if mode >= 2:
return
if Time.get_ticks_msec() - press_time < 1000:
return
press_time = Time.get_ticks_msec()
mode += direction
func open_paperback() -> void:
$SfxPage.play()
paperback.visible = true
paper.visible = false
p1.visible = false
signature.visible = false signature.visible = false
# test
get_tree().create_timer(3.0).timeout.connect(signature.play) func open_p1() -> void:
$SfxPage.play()
paperback.visible = false
paper.visible = true
p1.visible = true
signature.visible = false
func open_signature() -> void:
$SfxPage.play()
paperback.visible = false
paper.visible = true
p1.visible = false
signature.visible = true
signature.play()

View File

@ -1,148 +1,267 @@
[gd_scene load_steps=11 format=3 uid="uid://bl5pohc77hi43"] [gd_scene load_steps=30 format=3 uid="uid://bl5pohc77hi43"]
[ext_resource type="Texture2D" uid="uid://cndai8whwoytn" path="res://asset/art/临时草稿/生死簿/生死簿.png" id="1_7k4qj"]
[ext_resource type="Script" path="res://scene/little_game/书架/生死簿.gd" id="1_wipr2"] [ext_resource type="Script" 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"] [ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_17f8x"]
[ext_resource type="Texture2D" uid="uid://d4n4e3lid3tu2" path="res://asset/art/临时草稿/生死簿/陆小蝶名字.png" id="3_858cl"]
[ext_resource type="Texture2D" uid="uid://cpfpxox5q5ql3" path="res://asset/art/临时草稿/生死簿/生死簿名字.png" id="3_wngb0"]
[ext_resource type="Script" path="res://scene/little_game/书架/陆小蝶名字.gd" id="4_dssaj"] [ext_resource type="Script" path="res://scene/little_game/书架/陆小蝶名字.gd" id="4_dssaj"]
[ext_resource type="AudioStream" uid="uid://c3qonrtdjnmau" path="res://asset/audio/sfx/ui/纸声.wav" id="4_g2cg1"]
[ext_resource type="Texture2D" uid="uid://ci1iuxsvpy6qn" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png" id="4_ghblq"]
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/c02/撞到柜子.mp3" id="4_jifnx"] [ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/c02/撞到柜子.mp3" id="4_jifnx"]
[ext_resource type="Texture2D" uid="uid://munmy3e4qpcq" path="res://asset/art/little_game/书架_生死簿/封面.png" id="4_w8eyr"]
[ext_resource type="Texture2D" uid="uid://cc8117h1lfo1n" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png" id="5_qhrv2"]
[ext_resource type="Texture2D" uid="uid://cl7byobu28rsb" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png" id="6_ujwqa"]
[ext_resource type="Texture2D" uid="uid://vqq1hnf2yfat" path="res://asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png" id="7_hohup"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_mii3t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_isheb"] [sub_resource type="AtlasTexture" id="AtlasTexture_isheb"]
atlas = ExtResource("3_wngb0") atlas = ExtResource("5_qhrv2")
region = Rect2(9, 5, 40, 75) region = Rect2(183, 69, 12, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_wk6af"] [sub_resource type="AtlasTexture" id="AtlasTexture_7sf0e"]
atlas = ExtResource("3_wngb0") atlas = ExtResource("5_qhrv2")
region = Rect2(56, 8, 28, 68) region = Rect2(222, 71, 11, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_b5epk"] [sub_resource type="AtlasTexture" id="AtlasTexture_4iwuv"]
atlas = ExtResource("3_wngb0") atlas = ExtResource("5_qhrv2")
region = Rect2(105, 6, 29, 70) region = Rect2(258, 70, 10, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_gmnjx"]
atlas = ExtResource("5_qhrv2")
region = Rect2(322, 71, 11, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_w7g70"]
atlas = ExtResource("5_qhrv2")
region = Rect2(358, 71, 13, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_iee7q"]
atlas = ExtResource("5_qhrv2")
region = Rect2(394, 69, 12, 43)
[sub_resource type="AtlasTexture" id="AtlasTexture_1txev"]
atlas = ExtResource("5_qhrv2")
region = Rect2(183, 134, 12, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_36qa7"]
atlas = ExtResource("5_qhrv2")
region = Rect2(223, 130, 10, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_o5v72"]
atlas = ExtResource("5_qhrv2")
region = Rect2(258, 130, 11, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_w66tj"]
atlas = ExtResource("5_qhrv2")
region = Rect2(322, 135, 12, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_w3drj"]
atlas = ExtResource("5_qhrv2")
region = Rect2(359, 134, 11, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_1spdb"]
atlas = ExtResource("5_qhrv2")
region = Rect2(393, 135, 11, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_hqty3"]
atlas = ExtResource("5_qhrv2")
region = Rect2(184, 202, 11, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_dnk2y"]
atlas = ExtResource("5_qhrv2")
region = Rect2(221, 193, 11, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_xytdi"]
atlas = ExtResource("5_qhrv2")
region = Rect2(256, 195, 13, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_wdtj8"]
atlas = ExtResource("5_qhrv2")
region = Rect2(322, 201, 12, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_71e7e"]
atlas = ExtResource("5_qhrv2")
region = Rect2(358, 201, 12, 42)
[sub_resource type="AtlasTexture" id="AtlasTexture_01jvt"]
atlas = ExtResource("5_qhrv2")
region = Rect2(395, 200, 12, 41)
[node name="生死簿" type="CanvasLayer"] [node name="生死簿" type="CanvasLayer"]
layer = 11 layer = 11
script = ExtResource("1_wipr2") script = ExtResource("1_wipr2")
[node name="SfxStamp" parent="." instance=ExtResource("3_17f8x")] [node name="SfxPage" parent="." instance=ExtResource("3_17f8x")]
stream = ExtResource("4_g2cg1")
file = "纸声.wav"
[node name="Control" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="ColorRect" type="ColorRect" parent="Control"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0, 0, 0, 0.807843)
[node name="HBoxContainer" type="HBoxContainer" parent="Control/ColorRect"]
unique_name_in_owner = true
custom_minimum_size = Vector2(300, 220)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -150.0
offset_top = -110.0
offset_right = 150.0
offset_bottom = 110.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_constants/separation = 0
[node name="ButtonLeft" type="Button" parent="Control/ColorRect/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/focus = SubResource("StyleBoxEmpty_mii3t")
flat = true
[node name="ButtonRight" type="Button" parent="Control/ColorRect/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/focus = SubResource("StyleBoxEmpty_mii3t")
flat = true
[node name="ButtonPaperback" type="Button" parent="Control/ColorRect"]
unique_name_in_owner = true
layout_mode = 2
offset_left = 206.0
offset_top = 46.0
offset_right = 306.0
offset_bottom = 266.0
scale = Vector2(1.61309, 1.02152)
size_flags_horizontal = 3
theme_override_styles/focus = SubResource("StyleBoxEmpty_mii3t")
flat = true
[node name="封面" type="Sprite2D" parent="Control"]
unique_name_in_owner = true
position = Vector2(-5, 0)
texture = ExtResource("4_w8eyr")
centered = false
[node name="页面" type="Sprite2D" parent="Control"]
unique_name_in_owner = true
visible = false
position = Vector2(-10, 0)
texture = ExtResource("4_ghblq")
centered = false
[node name="p1" type="Sprite2D" parent="Control/页面"]
unique_name_in_owner = true
texture = ExtResource("5_qhrv2")
centered = false
[node name="印章" type="Sprite2D" parent="Control/页面/p1"]
texture = ExtResource("6_ujwqa")
centered = false
[node name="陆小蝶" type="Sprite2D" parent="Control/页面"]
unique_name_in_owner = true
modulate = Color(0.503203, 0.320866, 0.30312, 1)
position = Vector2(309, 163)
texture = ExtResource("7_hohup")
offset = Vector2(-20, 0)
script = ExtResource("4_dssaj")
area_size = Vector2(220, 150)
[node name="SfxStamp" parent="Control/页面/陆小蝶" instance=ExtResource("3_17f8x")]
stream = ExtResource("4_jifnx") stream = ExtResource("4_jifnx")
dir = "c02" dir = "c02"
file = "撞到柜子.mp3" file = "撞到柜子.mp3"
[node name="bg" type="TextureRect" parent="."] [node name="seals" type="Node2D" parent="Control/页面/陆小蝶"]
anchors_preset = 14
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_top = -100.0
offset_bottom = 100.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("1_7k4qj")
stretch_mode = 5
[node name="p1" type="TextureRect" parent="bg"] [node name="seal1" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
layout_mode = 0
offset_top = -58.0
offset_bottom = -58.0
mouse_filter = 2
stretch_mode = 5
[node name="陆小蝶" type="Sprite2D" parent="bg"]
unique_name_in_owner = true
modulate = Color(0.503203, 0.320866, 0.30312, 1)
position = Vector2(340, 103)
texture = ExtResource("3_858cl")
script = ExtResource("4_dssaj")
area_size = Vector2(100, 150)
[node name="seal1" type="Sprite2D" parent="bg/陆小蝶"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_isheb") texture = SubResource("AtlasTexture_isheb")
[node name="seal2" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal2" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_7sf0e")
texture = SubResource("AtlasTexture_wk6af")
[node name="seal3" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal3" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_4iwuv")
texture = SubResource("AtlasTexture_b5epk")
[node name="seal4" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal4" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_gmnjx")
texture = SubResource("AtlasTexture_isheb")
[node name="seal5" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal5" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_w7g70")
texture = SubResource("AtlasTexture_wk6af")
[node name="seal6" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal6" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_iee7q")
texture = SubResource("AtlasTexture_b5epk")
[node name="seal7" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal7" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_1txev")
texture = SubResource("AtlasTexture_isheb")
[node name="seal8" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal8" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_36qa7")
texture = SubResource("AtlasTexture_wk6af")
[node name="seal9" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal9" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_o5v72")
texture = SubResource("AtlasTexture_b5epk")
[node name="seal10" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal10" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_w66tj")
texture = SubResource("AtlasTexture_isheb")
[node name="seal11" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal11" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_w3drj")
texture = SubResource("AtlasTexture_wk6af")
[node name="seal12" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal12" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_1spdb")
texture = SubResource("AtlasTexture_b5epk")
[node name="seal13" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal13" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_hqty3")
texture = SubResource("AtlasTexture_isheb")
[node name="seal14" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal14" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_dnk2y")
texture = SubResource("AtlasTexture_wk6af")
[node name="seal15" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal15" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_xytdi")
texture = SubResource("AtlasTexture_b5epk")
[node name="seal16" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal16" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_wdtj8")
texture = SubResource("AtlasTexture_isheb")
[node name="seal17" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal17" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_71e7e")
texture = SubResource("AtlasTexture_wk6af")
[node name="seal18" type="Sprite2D" parent="bg/陆小蝶"] [node name="seal18" type="Sprite2D" parent="Control/页面/陆小蝶/seals"]
modulate = Color(0.710006, 0.41208, 0.953067, 1) modulate = Color(0.710006, 0.41208, 0.953067, 1)
scale = Vector2(0.5, 0.5) texture = SubResource("AtlasTexture_01jvt")
texture = SubResource("AtlasTexture_b5epk")

View File

@ -1,6 +1,8 @@
@tool @tool
extends Sprite2D extends Sprite2D
signal finished
@export var area_size := Vector2(60, 60): @export var area_size := Vector2(60, 60):
set(val): set(val):
area_size = val area_size = val
@ -22,11 +24,14 @@ func play() -> void:
tween.tween_interval(7.0) tween.tween_interval(7.0)
# 小蝶名字消失后再显示其他名字 # 小蝶名字消失后再显示其他名字
var interval = 2.4 var interval = 2.4
for c in self.get_children(): for c in $seals.get_children():
c.visible = false c.visible = false
tween.tween_callback(_stamp_seal.bind(c))
tween.tween_interval(interval) tween.tween_interval(interval)
tween.tween_callback(_stamp_seal.bind(c))
interval = max(interval - 0.3, 0.4) interval = max(interval - 0.3, 0.4)
# 最后一个印章消失后,稍加等待,发射完成信号
tween.tween_interval(2.0)
tween.tween_callback(finished.emit)
func _stamp_seal(seal: Sprite2D) -> void: func _stamp_seal(seal: Sprite2D) -> void:
@ -40,7 +45,7 @@ func _stamp_seal(seal: Sprite2D) -> void:
randf_range(-area_size.y * 0.5, area_size.y * 0.5) randf_range(-area_size.y * 0.5, area_size.y * 0.5)
) )
# stamp # stamp
$"../../SfxStamp".play() $"SfxStamp".play()
# show # show
seal.visible = true seal.visible = true
var origin_scale = seal.scale var origin_scale = seal.scale