diff --git a/asset/art/little_game/书架/书本.png b/asset/art/little_game/书架/书本.png deleted file mode 100644 index 044312fe..00000000 Binary files a/asset/art/little_game/书架/书本.png and /dev/null differ diff --git a/asset/art/little_game/书架/合并.png b/asset/art/little_game/书架/合并.png deleted file mode 100644 index bd687967..00000000 Binary files a/asset/art/little_game/书架/合并.png and /dev/null differ diff --git a/asset/art/little_game/书架_生死簿/书架参考.png b/asset/art/little_game/书架_生死簿/书架参考.png new file mode 100644 index 00000000..dce59f34 Binary files /dev/null and b/asset/art/little_game/书架_生死簿/书架参考.png differ diff --git a/asset/art/little_game/书架_生死簿/书架参考.png.import b/asset/art/little_game/书架_生死簿/书架参考.png.import new file mode 100644 index 00000000..71400b9f --- /dev/null +++ b/asset/art/little_game/书架_生死簿/书架参考.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/书架合并.png b/asset/art/little_game/书架_生死簿/书架合并.png new file mode 100644 index 00000000..07d3c66b Binary files /dev/null and b/asset/art/little_game/书架_生死簿/书架合并.png differ diff --git a/asset/art/little_game/书架/合并.png.import b/asset/art/little_game/书架_生死簿/书架合并.png.import similarity index 68% rename from asset/art/little_game/书架/合并.png.import rename to asset/art/little_game/书架_生死簿/书架合并.png.import index 66f182e8..d035dfd8 100644 --- a/asset/art/little_game/书架/合并.png.import +++ b/asset/art/little_game/书架_生死簿/书架合并.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bbskja06j74v0" -path="res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" +path="res://.godot/imported/书架合并.png-359fbfa0eac5f528bacc31ef5901a754.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/little_game/书架/合并.png" -dest_files=["res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex"] +source_file="res://asset/art/little_game/书架_生死簿/书架合并.png" +dest_files=["res://.godot/imported/书架合并.png-359fbfa0eac5f528bacc31ef5901a754.ctex"] [params] diff --git a/asset/art/little_game/书架/书架框.png b/asset/art/little_game/书架_生死簿/书架框.png similarity index 100% rename from asset/art/little_game/书架/书架框.png rename to asset/art/little_game/书架_生死簿/书架框.png diff --git a/asset/art/little_game/书架/书架框.png.import b/asset/art/little_game/书架_生死簿/书架框.png.import similarity index 69% rename from asset/art/little_game/书架/书架框.png.import rename to asset/art/little_game/书架_生死簿/书架框.png.import index a56c7ac2..00c0baca 100644 --- a/asset/art/little_game/书架/书架框.png.import +++ b/asset/art/little_game/书架_生死簿/书架框.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://tuf2xak5sfaj" -path="res://.godot/imported/书架框.png-beb1e0d933ac47aeaaeb6863a57e618f.ctex" +path="res://.godot/imported/书架框.png-76cfaf9dd6621fb10bfe5a668edaf186.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/little_game/书架/书架框.png" -dest_files=["res://.godot/imported/书架框.png-beb1e0d933ac47aeaaeb6863a57e618f.ctex"] +source_file="res://asset/art/little_game/书架_生死簿/书架框.png" +dest_files=["res://.godot/imported/书架框.png-76cfaf9dd6621fb10bfe5a668edaf186.ctex"] [params] diff --git a/asset/art/little_game/书架_生死簿/参考1.png b/asset/art/little_game/书架_生死簿/参考1.png new file mode 100644 index 00000000..698b42e0 Binary files /dev/null and b/asset/art/little_game/书架_生死簿/参考1.png differ diff --git a/asset/art/little_game/书架_生死簿/参考1.png.import b/asset/art/little_game/书架_生死簿/参考1.png.import new file mode 100644 index 00000000..67b29878 --- /dev/null +++ b/asset/art/little_game/书架_生死簿/参考1.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/参考2.png b/asset/art/little_game/书架_生死簿/参考2.png new file mode 100644 index 00000000..929eda12 Binary files /dev/null and b/asset/art/little_game/书架_生死簿/参考2.png differ diff --git a/asset/art/little_game/书架_生死簿/参考2.png.import b/asset/art/little_game/书架_生死簿/参考2.png.import new file mode 100644 index 00000000..6d982eae --- /dev/null +++ b/asset/art/little_game/书架_生死簿/参考2.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/封面.png b/asset/art/little_game/书架_生死簿/封面.png new file mode 100644 index 00000000..545f8b5b Binary files /dev/null and b/asset/art/little_game/书架_生死簿/封面.png differ diff --git a/asset/art/little_game/书架/书本.png.import b/asset/art/little_game/书架_生死簿/封面.png.import similarity index 67% rename from asset/art/little_game/书架/书本.png.import rename to asset/art/little_game/书架_生死簿/封面.png.import index fc25b288..db67b069 100644 --- a/asset/art/little_game/书架/书本.png.import +++ b/asset/art/little_game/书架_生死簿/封面.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d21etepasofj8" -path="res://.godot/imported/书本.png-9024e93192f48c68d0ef5f86a3900152.ctex" +uid="uid://munmy3e4qpcq" +path="res://.godot/imported/封面.png-9a7484d0b77021c5aea2cb5c51d4c0f2.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/little_game/书架/书本.png" -dest_files=["res://.godot/imported/书本.png-9024e93192f48c68d0ef5f86a3900152.ctex"] +source_file="res://asset/art/little_game/书架_生死簿/封面.png" +dest_files=["res://.godot/imported/封面.png-9a7484d0b77021c5aea2cb5c51d4c0f2.ctex"] [params] diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png new file mode 100644 index 00000000..809e65cb Binary files /dev/null and b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png differ diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png.import b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png.import new file mode 100644 index 00000000..06d40335 --- /dev/null +++ b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png new file mode 100644 index 00000000..1ee444b6 Binary files /dev/null and b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png differ diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png.import b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png.import new file mode 100644 index 00000000..728c45d0 --- /dev/null +++ b/asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png b/asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png new file mode 100644 index 00000000..0013618d Binary files /dev/null and b/asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png differ diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png.import b/asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png.import new file mode 100644 index 00000000..ea1f5152 --- /dev/null +++ b/asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png b/asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png new file mode 100644 index 00000000..9df7ad69 Binary files /dev/null and b/asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png differ diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png.import b/asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png.import new file mode 100644 index 00000000..191c993c --- /dev/null +++ b/asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png.import @@ -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 diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png b/asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png new file mode 100644 index 00000000..feced7e7 Binary files /dev/null and b/asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png differ diff --git a/asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png.import b/asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png.import new file mode 100644 index 00000000..d285e2ef --- /dev/null +++ b/asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png.import @@ -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 diff --git a/scene/entity/ux/刮刮乐.tscn b/scene/entity/ux/刮刮乐.tscn index a8b84bb2..5e913fc4 100644 --- a/scene/entity/ux/刮刮乐.tscn +++ b/scene/entity/ux/刮刮乐.tscn @@ -9,7 +9,7 @@ shader = ExtResource("3_er5jo") shader_parameter/grey_scale = 0.33 -[sub_resource type="Image" id="Image_ra1lb"] +[sub_resource type="Image" id="Image_7ef34"] 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), "format": "Lum8", @@ -18,8 +18,8 @@ data = { "width": 49 } -[sub_resource type="ImageTexture" id="ImageTexture_o178p"] -image = SubResource("Image_ra1lb") +[sub_resource type="ImageTexture" id="ImageTexture_uplae"] +image = SubResource("Image_7ef34") [node name="刮刮乐" type="Sprite2D"] position = Vector2(127, 138) @@ -34,6 +34,6 @@ offset_left = -24.0 offset_top = 6.0 offset_right = 25.0 offset_bottom = 24.0 -texture = SubResource("ImageTexture_o178p") +texture = SubResource("ImageTexture_uplae") script = ExtResource("4_wp0ek") area_size = Vector2(49, 18) diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index 0b14a90d..0623c4cb 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -56,7 +56,6 @@ texture = ExtResource("3_l7171") offset = Vector2(0, -158) [node name="portal_right" parent="Ground/DeployLayer" index="1"] -immediately = false target_scene = "c02_s08" [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")] position = Vector2(995, 28) debug_note = "c01_s07 的 2 号门通往书店" -immediately = false portal_name = "2" target_scene = "c01_s08" target_portal = "left" diff --git a/scene/ground/scene/c01/s08_animation.gd b/scene/ground/scene/c01/s08_animation.gd index 9698299b..f808e998 100644 --- a/scene/ground/scene/c01/s08_animation.gd +++ b/scene/ground/scene/c01/s08_animation.gd @@ -22,7 +22,9 @@ func _on_ground_ready() -> void: mask = $"../DeployLayer/Mask" var shelf_game_success = ArchiveManager.archive.get_global_value("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") @@ -44,12 +46,18 @@ func play_game() -> void: func _on_game_exiting() -> void: if GlobalConfig.DEBUG: 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() func _on_game_success() -> void: 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() # 书架游戏成功后,展示老鼠 $"../DeployLayer/自动跟随的老鼠".visible = true diff --git a/scene/little_game/书架/书架.gd b/scene/little_game/书架/书架.gd index 4096ece8..6e437321 100644 --- a/scene/little_game/书架/书架.gd +++ b/scene/little_game/书架/书架.gd @@ -1,4 +1,4 @@ -# @tool +@tool extends CanvasLayer signal exiting @@ -7,6 +7,14 @@ signal success const NON_SELECTED = [-1, -1] @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_interchange = $SfxInterchange as Sfx @@ -19,6 +27,7 @@ var selected_book := NON_SELECTED: set(value): if selected_book == value: return + # 在 suffling 时不允许改变 selected_book if suffling: selected_book = value return @@ -27,21 +36,21 @@ var selected_book := NON_SELECTED: if value != NON_SELECTED: _toggle_book(true, value[0], value[1]) selected_book = value +var gameover = false func _ready() -> void: # init answer first _init_answer_and_connect_signals() + if Engine.is_editor_hint(): + return _measure_width_by_row() # shuffle at the end - if Engine.is_editor_hint(): - for row in range(3): - _relocate_books(row) - else: - _shuffle_books() + _shuffle_books() func _init_answer_and_connect_signals() -> void: + current_answer.clear() for row in range(3): var r_size = get_node("./Shelf/Layer" + str(row)).get_child_count() # current_answer append a r_size arr @@ -49,25 +58,31 @@ func _init_answer_and_connect_signals() -> void: for id in range(r_size): arr.append(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) func _measure_width_by_row() -> void: + # 书本间的额外间隙,用于调整书本之间的间隔 + var extra_gap = [2., 3., 4.] + book_width_by_row = [] for row in range(3): var length = current_answer[row].size() var width_arr = [] for col in range(length): var book_btn = _get_book_by_id(row, col).get_node("BookButton") as TextureButton - # book_btn.position.y = -book_btn.texture_normal.get_height() - # 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) + width_arr.append(book_btn.texture_normal.get_width() + extra_gap[row]) book_width_by_row.append(width_arr) func _shuffle_books() -> void: selected_book = NON_SELECTED + if GlobalConfig.DEBUG: + SceneManager.pop_debug_dialog_info( + "备注", "debug模式每列随机洗牌 1 次,正常模式每列随机洗牌 " + str(shuffle_times) + " 次" + ) + shuffle_times = 1 suffling = true rand_from_seed(Time.get_ticks_usec()) for row in range(3): @@ -84,6 +99,8 @@ func _shuffle_books() -> void: func _on_book_pressed(row: int, id: int) -> void: + if gameover: + return var col = current_answer[row].find(id) if selected_book == NON_SELECTED: selected_book = [row, col] @@ -170,22 +187,35 @@ func _check_answer() -> void: for col in range(size2): if row2[col] != size2 - 1 - col: return - # 最后一行按色块排列;0-6 蓝色(7个)在一起,7-11 红色(5个)在一起,12-17 黄色(6个)在一起 - var row3 = current_answer[2] - # 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 + # 第三行正序或者倒序都可以 + var _row3 = current_answer[2] + var _size3 = _row3.size() + if _row3[0] == 0: + # 正序 + for col in range(1, _size3): + if _row3[col] != col: + return + else: + # 倒序 + for col in range(_size3): + if _row3[col] != _size3 - 1 - col: + return + # # 最后一行按色块排列;0-6 蓝色(7个)在一起,7-11 红色(5个)在一起,12-17 黄色(6个)在一起 + # var row3 = current_answer[2] + # # 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() @@ -202,9 +232,19 @@ func _get_color(index: int) -> int: func _success() -> void: - print("Success!") - #TODO + gameover = true + print("书架游戏通关! 播放生死簿动画") + # TODO 生死簿倒下的动画 + SceneManager.pop_debug_dialog_info("美术", "生死簿倒下的动画") + $"生死簿".show() + # 完成后释放信号 + $"生死簿".finished.connect(_on_success_finished) + +# 生死簿阅读完成后 +func _on_success_finished() -> void: success.emit() + # exit + get_parent().remove_child(self) func _unhandled_input(event: InputEvent) -> void: diff --git a/scene/little_game/书架/书架.tscn b/scene/little_game/书架/书架.tscn index f9fc199d..5fb83649 100644 --- a/scene/little_game/书架/书架.tscn +++ b/scene/little_game/书架/书架.tscn @@ -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="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://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="Texture2D" uid="uid://bbskja06j74v0" path="res://asset/art/little_game/书架/合并.png" id="6_pxxx5"] +[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"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_6hdac"] +atlas = ExtResource("6_pxxx5") +region = Rect2(15, 25, 576, 317) [sub_resource type="AtlasTexture" id="AtlasTexture_c3g4t"] atlas = ExtResource("6_pxxx5") -region = Rect2(22, 484, 15, 104) +region = Rect2(26, 380, 14, 76) [sub_resource type="AtlasTexture" id="AtlasTexture_pmg84"] atlas = ExtResource("6_pxxx5") -region = Rect2(57, 512, 14, 76) +region = Rect2(50, 380, 15, 76) [sub_resource type="AtlasTexture" id="AtlasTexture_5xs8h"] atlas = ExtResource("6_pxxx5") -region = Rect2(89, 512, 14, 76) +region = Rect2(76, 363, 14, 93) [sub_resource type="AtlasTexture" id="AtlasTexture_4cxbt"] atlas = ExtResource("6_pxxx5") -region = Rect2(126, 495, 14, 93) +region = Rect2(96, 375, 5, 81) [sub_resource type="AtlasTexture" id="AtlasTexture_x1voy"] atlas = ExtResource("6_pxxx5") -region = Rect2(173, 507, 15, 81) +region = Rect2(106, 375, 8, 81) [sub_resource type="AtlasTexture" id="AtlasTexture_s637y"] atlas = ExtResource("6_pxxx5") -region = Rect2(225, 506, 28, 82) +region = Rect2(122, 374, 20, 82) [sub_resource type="AtlasTexture" id="AtlasTexture_2rk7g"] atlas = ExtResource("6_pxxx5") -region = Rect2(279, 495, 14, 93) +region = Rect2(152, 363, 14, 93) [sub_resource type="AtlasTexture" id="AtlasTexture_uo0qb"] atlas = ExtResource("6_pxxx5") -region = Rect2(320, 489, 14, 99) +region = Rect2(174, 357, 14, 99) [sub_resource type="AtlasTexture" id="AtlasTexture_v6h51"] atlas = ExtResource("6_pxxx5") -region = Rect2(487, 489, 14, 99) +region = Rect2(198, 358, 23, 98) [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_dg6aw"] load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" [sub_resource type="AtlasTexture" id="AtlasTexture_fno8t"] atlas = SubResource("CompressedTexture2D_dg6aw") -region = Rect2(443, 486, 14, 102) +region = Rect2(228, 354, 14, 102) [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_86iw8"] load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" [sub_resource type="AtlasTexture" id="AtlasTexture_sqqma"] atlas = SubResource("CompressedTexture2D_86iw8") -region = Rect2(531, 493, 15, 95) +region = Rect2(251, 357, 13, 99) [sub_resource type="AtlasTexture" id="AtlasTexture_2v8gr"] atlas = SubResource("CompressedTexture2D_86iw8") -region = Rect2(579, 495, 19, 93) +region = Rect2(271, 362, 15, 94) [sub_resource type="AtlasTexture" id="AtlasTexture_g33pn"] atlas = SubResource("CompressedTexture2D_86iw8") -region = Rect2(629, 495, 14, 93) +region = Rect2(294, 364, 19, 92) [sub_resource type="AtlasTexture" id="AtlasTexture_7bg4e"] atlas = SubResource("CompressedTexture2D_86iw8") -region = Rect2(671, 519, 14, 69) +region = Rect2(321, 363, 14, 93) [sub_resource type="AtlasTexture" id="AtlasTexture_yyofn"] atlas = SubResource("CompressedTexture2D_86iw8") -region = Rect2(712, 502, 14, 85) +region = Rect2(344, 387, 14, 69) [sub_resource type="AtlasTexture" id="AtlasTexture_il3nv"] 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"] atlas = ExtResource("6_pxxx5") -region = Rect2(21, 649, 18, 62) +region = Rect2(36, 502, 18, 62) [sub_resource type="AtlasTexture" id="AtlasTexture_7ejmc"] atlas = ExtResource("6_pxxx5") -region = Rect2(58, 646, 12, 65) +region = Rect2(62, 499, 12, 65) [sub_resource type="AtlasTexture" id="AtlasTexture_pv5xt"] atlas = ExtResource("6_pxxx5") -region = Rect2(86, 643, 11, 68) +region = Rect2(82, 496, 11, 68) [sub_resource type="AtlasTexture" id="AtlasTexture_0m1py"] atlas = ExtResource("6_pxxx5") -region = Rect2(112, 639, 15, 72) +region = Rect2(100, 492, 15, 72) [sub_resource type="AtlasTexture" id="AtlasTexture_ewy65"] atlas = ExtResource("6_pxxx5") -region = Rect2(146, 635, 17, 76) +region = Rect2(121, 490, 5, 74) [sub_resource type="AtlasTexture" id="AtlasTexture_p1i0i"] atlas = ExtResource("6_pxxx5") -region = Rect2(180, 628, 16, 83) +region = Rect2(133, 488, 10, 76) [sub_resource type="AtlasTexture" id="AtlasTexture_qjlqs"] atlas = ExtResource("6_pxxx5") -region = Rect2(219, 625, 9, 86) +region = Rect2(150, 484, 12, 80) [sub_resource type="AtlasTexture" id="AtlasTexture_bef8d"] atlas = ExtResource("6_pxxx5") -region = Rect2(247, 620, 9, 91) +region = Rect2(170, 481, 5, 83) [sub_resource type="AtlasTexture" id="AtlasTexture_tmibm"] atlas = ExtResource("6_pxxx5") -region = Rect2(274, 616, 24, 95) +region = Rect2(183, 478, 9, 86) [sub_resource type="AtlasTexture" id="AtlasTexture_niqsg"] atlas = ExtResource("6_pxxx5") -region = Rect2(317, 612, 25, 99) - -[sub_resource type="AtlasTexture" id="AtlasTexture_lqh8e"] -atlas = ExtResource("6_pxxx5") -region = Rect2(361, 609, 11, 102) +region = Rect2(202, 473, 9, 91) [sub_resource type="AtlasTexture" id="AtlasTexture_4i6n2"] atlas = ExtResource("6_pxxx5") -region = Rect2(414, 624, 13, 87) +region = Rect2(326, 477, 13, 97) [sub_resource type="AtlasTexture" id="AtlasTexture_3jfnd"] atlas = ExtResource("6_pxxx5") -region = Rect2(445, 628, 15, 83) +region = Rect2(356, 478, 13, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_5j1oq"] atlas = ExtResource("6_pxxx5") -region = Rect2(479, 613, 12, 98) +region = Rect2(383, 475, 15, 99) [sub_resource type="AtlasTexture" id="AtlasTexture_e5eo5"] atlas = ExtResource("6_pxxx5") -region = Rect2(512, 621, 13, 90) +region = Rect2(407, 477, 13, 97) [sub_resource type="AtlasTexture" id="AtlasTexture_sungh"] atlas = ExtResource("6_pxxx5") -region = Rect2(544, 621, 13, 90) +region = Rect2(431, 477, 13, 97) [sub_resource type="AtlasTexture" id="AtlasTexture_yqrs8"] atlas = ExtResource("6_pxxx5") -region = Rect2(574, 621, 13, 90) +region = Rect2(457, 478, 13, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_jrkcq"] atlas = ExtResource("6_pxxx5") -region = Rect2(610, 624, 13, 87) - -[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) +region = Rect2(481, 477, 13, 97) [node name="书架" type="CanvasLayer"] script = ExtResource("1_8af23") -shuffle_times = 1 [node name="SfxInterchange" parent="." instance=ExtResource("3_03tyv")] stream = ExtResource("3_elhhm") @@ -207,15 +174,15 @@ file = "物品查看.mp3" [node name="Shelf" type="Sprite2D" parent="."] position = Vector2(283, 160) -texture = ExtResource("5_i131t") +texture = SubResource("AtlasTexture_6hdac") [node name="Layer0" type="Control" parent="Shelf"] layout_mode = 3 anchors_preset = 0 -offset_left = -126.0 -offset_top = -10.0 -offset_right = -126.0 -offset_bottom = -10.0 +offset_left = -142.0 +offset_top = -7.0 +offset_right = -142.0 +offset_bottom = -7.0 scale = Vector2(0.9, 0.9) [node name="Book0" type="Node2D" parent="Shelf/Layer0"] @@ -225,8 +192,8 @@ clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -104.0 -offset_right = 15.0 +offset_top = -76.0 +offset_right = 14.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_c3g4t") @@ -239,38 +206,38 @@ anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_top = -76.0 -offset_right = 14.0 +offset_right = 15.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_pmg84") [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"] clip_contents = true anchors_preset = 2 anchor_top = 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_right = 14.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") [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"] clip_contents = true @@ -278,12 +245,12 @@ anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_top = -81.0 -offset_right = 15.0 +offset_right = 8.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_x1voy") [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"] clip_contents = true @@ -291,12 +258,12 @@ anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_top = -82.0 -offset_right = 28.0 +offset_right = 20.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_s637y") [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"] clip_contents = true @@ -309,7 +276,7 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_2rk7g") [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"] clip_contents = true @@ -322,7 +289,7 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_uo0qb") [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"] clip_contents = true @@ -330,12 +297,12 @@ anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_top = -99.0 -offset_right = 14.0 +offset_right = 13.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_v6h51") [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"] clip_contents = true @@ -348,7 +315,7 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_fno8t") [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"] clip_contents = true @@ -356,38 +323,38 @@ anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_top = -99.0 -offset_right = 14.0 +offset_right = 13.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_v6h51") +texture_normal = SubResource("AtlasTexture_sqqma") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -95.0 +offset_top = -94.0 offset_right = 15.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_sqqma") +texture_normal = SubResource("AtlasTexture_2v8gr") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -93.0 +offset_top = -92.0 offset_right = 19.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_2v8gr") +texture_normal = SubResource("AtlasTexture_g33pn") [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"] clip_contents = true @@ -397,10 +364,10 @@ anchor_bottom = 1.0 offset_top = -93.0 offset_right = 14.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_g33pn") +texture_normal = SubResource("AtlasTexture_7bg4e") [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"] clip_contents = true @@ -410,10 +377,10 @@ anchor_bottom = 1.0 offset_top = -69.0 offset_right = 14.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_7bg4e") +texture_normal = SubResource("AtlasTexture_yyofn") [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"] clip_contents = true @@ -423,7 +390,7 @@ anchor_bottom = 1.0 offset_top = -85.0 offset_right = 14.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_yyofn") +texture_normal = SubResource("AtlasTexture_il3nv") [node name="Book16" type="Node2D" parent="Shelf/Layer0"] position = Vector2(262, 0) @@ -433,20 +400,44 @@ clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_left = -0.888879 -offset_top = -82.2222 -offset_right = 15.1111 -offset_bottom = -0.222221 +offset_top = -82.0 +offset_right = 16.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"] layout_mode = 3 anchors_preset = 0 -offset_left = -226.0 -offset_top = 112.0 -offset_right = -226.0 -offset_bottom = 112.0 +offset_left = -243.0 +offset_top = 115.0 +offset_right = -243.0 +offset_bottom = 115.0 scale = Vector2(0.9, 0.9) [node name="Book0" type="Node2D" parent="Shelf/Layer1"] @@ -462,7 +453,7 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_b3xvs") [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"] clip_contents = true @@ -475,7 +466,7 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_7ejmc") [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"] clip_contents = true @@ -488,7 +479,7 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_pv5xt") [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"] clip_contents = true @@ -501,48 +492,74 @@ grow_vertical = 0 texture_normal = SubResource("AtlasTexture_0m1py") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -76.0 -offset_right = 17.0 +offset_top = -74.0 +offset_right = 5.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_ewy65") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -83.0 -offset_right = 16.0 +offset_top = -76.0 +offset_right = 10.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_p1i0i") [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"] clip_contents = true anchors_preset = 2 anchor_top = 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_right = 9.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_qjlqs") +texture_normal = SubResource("AtlasTexture_tmibm") -[node name="Book7" type="Node2D" parent="Shelf/Layer1"] -position = Vector2(105, 0) +[node name="Book9" type="Node2D" parent="Shelf/Layer1"] +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 anchors_preset = 2 anchor_top = 1.0 @@ -550,52 +567,15 @@ anchor_bottom = 1.0 offset_top = -91.0 offset_right = 9.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") -[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"] layout_mode = 3 anchors_preset = 0 -offset_top = 112.0 -offset_bottom = 112.0 +offset_left = 137.0 +offset_top = 114.0 +offset_right = 137.0 +offset_bottom = 114.0 scale = Vector2(0.9, 0.9) [node name="Book0" type="Node2D" parent="Shelf/Layer2"] @@ -605,232 +585,89 @@ clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -87.0 +offset_top = -97.0 offset_right = 13.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_4i6n2") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -83.0 -offset_right = 15.0 +offset_top = -96.0 +offset_right = 13.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_3jfnd") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -98.0 -offset_right = 12.0 +offset_top = -99.0 +offset_right = 15.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_5j1oq") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -90.0 +offset_top = -97.0 offset_right = 13.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_e5eo5") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -90.0 +offset_top = -97.0 offset_right = 13.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_sungh") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -90.0 +offset_top = -96.0 offset_right = 13.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_yqrs8") [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"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -87.0 +offset_top = -97.0 offset_right = 13.0 grow_vertical = 0 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="."] unique_name_in_owner = true visible = false @@ -861,3 +698,6 @@ grow_horizontal = 2 grow_vertical = 0 mouse_filter = 2 color = Color(0, 0, 0, 1) + +[node name="生死簿" parent="." instance=ExtResource("6_mhajy")] +visible = false diff --git a/scene/little_game/书架/生死簿.gd b/scene/little_game/书架/生死簿.gd index 09b4b345..6594e068 100644 --- a/scene/little_game/书架/生死簿.gd +++ b/scene/little_game/书架/生死簿.gd @@ -1,10 +1,77 @@ extends CanvasLayer +signal finished + +@onready var paperback = %"封面" +@onready var paper = %"页面" +@onready var p1 = %"p1" @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: 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 - # 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() \ No newline at end of file diff --git a/scene/little_game/书架/生死簿.tscn b/scene/little_game/书架/生死簿.tscn index 31bcd428..40aaff28 100644 --- a/scene/little_game/书架/生死簿.tscn +++ b/scene/little_game/书架/生死簿.tscn @@ -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="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="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="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"] -atlas = ExtResource("3_wngb0") -region = Rect2(9, 5, 40, 75) +atlas = ExtResource("5_qhrv2") +region = Rect2(183, 69, 12, 43) -[sub_resource type="AtlasTexture" id="AtlasTexture_wk6af"] -atlas = ExtResource("3_wngb0") -region = Rect2(56, 8, 28, 68) +[sub_resource type="AtlasTexture" id="AtlasTexture_7sf0e"] +atlas = ExtResource("5_qhrv2") +region = Rect2(222, 71, 11, 41) -[sub_resource type="AtlasTexture" id="AtlasTexture_b5epk"] -atlas = ExtResource("3_wngb0") -region = Rect2(105, 6, 29, 70) +[sub_resource type="AtlasTexture" id="AtlasTexture_4iwuv"] +atlas = ExtResource("5_qhrv2") +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"] layer = 11 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") dir = "c02" file = "撞到柜子.mp3" -[node name="bg" type="TextureRect" parent="."] -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="seals" type="Node2D" parent="Control/页面/陆小蝶"] -[node name="p1" type="TextureRect" parent="bg"] -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/陆小蝶"] +[node name="seal1" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) 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) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_wk6af") +texture = SubResource("AtlasTexture_7sf0e") -[node name="seal3" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal3" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_b5epk") +texture = SubResource("AtlasTexture_4iwuv") -[node name="seal4" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal4" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_isheb") +texture = SubResource("AtlasTexture_gmnjx") -[node name="seal5" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal5" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_wk6af") +texture = SubResource("AtlasTexture_w7g70") -[node name="seal6" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal6" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_b5epk") +texture = SubResource("AtlasTexture_iee7q") -[node name="seal7" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal7" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_isheb") +texture = SubResource("AtlasTexture_1txev") -[node name="seal8" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal8" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_wk6af") +texture = SubResource("AtlasTexture_36qa7") -[node name="seal9" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal9" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_b5epk") +texture = SubResource("AtlasTexture_o5v72") -[node name="seal10" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal10" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_isheb") +texture = SubResource("AtlasTexture_w66tj") -[node name="seal11" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal11" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_wk6af") +texture = SubResource("AtlasTexture_w3drj") -[node name="seal12" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal12" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_b5epk") +texture = SubResource("AtlasTexture_1spdb") -[node name="seal13" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal13" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_isheb") +texture = SubResource("AtlasTexture_hqty3") -[node name="seal14" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal14" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_wk6af") +texture = SubResource("AtlasTexture_dnk2y") -[node name="seal15" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal15" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_b5epk") +texture = SubResource("AtlasTexture_xytdi") -[node name="seal16" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal16" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_isheb") +texture = SubResource("AtlasTexture_wdtj8") -[node name="seal17" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal17" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_wk6af") +texture = SubResource("AtlasTexture_71e7e") -[node name="seal18" type="Sprite2D" parent="bg/陆小蝶"] +[node name="seal18" type="Sprite2D" parent="Control/页面/陆小蝶/seals"] modulate = Color(0.710006, 0.41208, 0.953067, 1) -scale = Vector2(0.5, 0.5) -texture = SubResource("AtlasTexture_b5epk") +texture = SubResource("AtlasTexture_01jvt") diff --git a/scene/little_game/书架/陆小蝶名字.gd b/scene/little_game/书架/陆小蝶名字.gd index 5530801f..4637fef6 100644 --- a/scene/little_game/书架/陆小蝶名字.gd +++ b/scene/little_game/书架/陆小蝶名字.gd @@ -1,6 +1,8 @@ @tool extends Sprite2D +signal finished + @export var area_size := Vector2(60, 60): set(val): area_size = val @@ -22,11 +24,14 @@ func play() -> void: tween.tween_interval(7.0) # 小蝶名字消失后再显示其他名字 var interval = 2.4 - for c in self.get_children(): + for c in $seals.get_children(): c.visible = false - tween.tween_callback(_stamp_seal.bind(c)) tween.tween_interval(interval) + tween.tween_callback(_stamp_seal.bind(c)) interval = max(interval - 0.3, 0.4) + # 最后一个印章消失后,稍加等待,发射完成信号 + tween.tween_interval(2.0) + tween.tween_callback(finished.emit) 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) ) # stamp - $"../../SfxStamp".play() + $"SfxStamp".play() # show seal.visible = true var origin_scale = seal.scale