demo 部分细节优化 & 盒子猫资源适配

This commit is contained in:
cakipaul 2025-06-05 22:01:47 +08:00
parent fb3c720b39
commit 260cb77045
90 changed files with 1458 additions and 165 deletions

View File

@ -0,0 +1,105 @@
[gd_resource type="SpriteFrames" load_steps=21 format=3 uid="uid://b85gyfhk1mg6r"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫走路/0.png" id="1_2bva2"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫呼吸/0.png" id="1_3lx3k"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/0.png" id="1_20i8c"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/0.png" id="1_tl1im"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/1.png" id="2_1qi2p"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/1.png" id="2_2bva2"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫走路/1.png" id="2_oeyib"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫呼吸/1.png" id="2_tl1im"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫呼吸/2.png" id="3_2bva2"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/2.png" id="3_48bfj"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫走路/2.png" id="3_k6pn8"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/2.png" id="3_oeyib"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫走路/3.png" id="4_20i8c"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/3.png" id="4_k6pn8"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/3.png" id="4_ny135"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/小猫走路/4.png" id="5_1qi2p"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/4.png" id="5_71luw"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/5.png" id="6_ygw33"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/6.png" id="7_aqeke"]
[ext_resource type="Texture2D" path="res://asset/art/gif/c02_盒子猫/猪头怪走路/7.png" id="8_3hv2d"]
[resource]
animations = [{
"frames": [{
"duration": 6.0,
"texture": ExtResource("1_3lx3k")
}, {
"duration": 6.0,
"texture": ExtResource("2_tl1im")
}, {
"duration": 6.0,
"texture": ExtResource("3_2bva2")
}],
"loop": true,
"name": &"小猫呼吸",
"speed": 30.0
}, {
"frames": [{
"duration": 4.2,
"texture": ExtResource("1_2bva2")
}, {
"duration": 4.2,
"texture": ExtResource("2_oeyib")
}, {
"duration": 4.2,
"texture": ExtResource("3_k6pn8")
}, {
"duration": 4.2,
"texture": ExtResource("4_20i8c")
}, {
"duration": 4.2,
"texture": ExtResource("5_1qi2p")
}],
"loop": true,
"name": &"小猫走路",
"speed": 30.0
}, {
"frames": [{
"duration": 15.0,
"texture": ExtResource("1_tl1im")
}, {
"duration": 15.0,
"texture": ExtResource("2_2bva2")
}, {
"duration": 15.0,
"texture": ExtResource("3_oeyib")
}, {
"duration": 15.0,
"texture": ExtResource("4_k6pn8")
}],
"loop": true,
"name": &"猪头怪呼吸",
"speed": 30.0
}, {
"frames": [{
"duration": 4.5,
"texture": ExtResource("1_20i8c")
}, {
"duration": 4.5,
"texture": ExtResource("2_1qi2p")
}, {
"duration": 4.5,
"texture": ExtResource("3_48bfj")
}, {
"duration": 4.5,
"texture": ExtResource("4_ny135")
}, {
"duration": 4.5,
"texture": ExtResource("5_71luw")
}, {
"duration": 4.5,
"texture": ExtResource("6_ygw33")
}, {
"duration": 4.5,
"texture": ExtResource("7_aqeke")
}, {
"duration": 4.5,
"texture": ExtResource("8_3hv2d")
}],
"loop": true,
"name": &"猪头怪走路",
"speed": 30.0
}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://b3vme6xe3653p"
path="res://.godot/imported/小猫呼吸.gif-2d9861986c5ee431984460e3ca4c97fa.tres"
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫呼吸.gif"
dest_files=["res://.godot/imported/小猫呼吸.gif-2d9861986c5ee431984460e3ca4c97fa.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bk3ctqo0njfx6"
path="res://.godot/imported/0.png-b9d2b156aac7df9e66868c82fc15488c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫呼吸/0.png"
dest_files=["res://.godot/imported/0.png-b9d2b156aac7df9e66868c82fc15488c.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: 25 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxu5ggucxkbk6"
path="res://.godot/imported/1.png-e557157752ef4413e5ea6eb7e4c37cce.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫呼吸/1.png"
dest_files=["res://.godot/imported/1.png-e557157752ef4413e5ea6eb7e4c37cce.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: 20 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cuxs057je376v"
path="res://.godot/imported/2.png-64027ae2d91aaa7aa50e47ec9bccd5b6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫呼吸/2.png"
dest_files=["res://.godot/imported/2.png-64027ae2d91aaa7aa50e47ec9bccd5b6.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: 61 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://626jo6j6xxa3"
path="res://.godot/imported/小猫走路.gif-d12c3190468c74036d1c6290a146a89b.tres"
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫走路.gif"
dest_files=["res://.godot/imported/小猫走路.gif-d12c3190468c74036d1c6290a146a89b.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxaan7ayafkuk"
path="res://.godot/imported/0.png-1260167be62bdd896eabbc8881dcb9f1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫走路/0.png"
dest_files=["res://.godot/imported/0.png-1260167be62bdd896eabbc8881dcb9f1.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: 28 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dm2tlsxrdir8l"
path="res://.godot/imported/1.png-76a8f1857cdea503ab649879788109b7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫走路/1.png"
dest_files=["res://.godot/imported/1.png-76a8f1857cdea503ab649879788109b7.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: 25 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2dmfqvjq628v"
path="res://.godot/imported/2.png-349803428aae95adbcda1667ce453fc5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫走路/2.png"
dest_files=["res://.godot/imported/2.png-349803428aae95adbcda1667ce453fc5.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: 25 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bcclw4ch2h51i"
path="res://.godot/imported/3.png-ed474d743fbf2f648c54fbfae511cd09.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫走路/3.png"
dest_files=["res://.godot/imported/3.png-ed474d743fbf2f648c54fbfae511cd09.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: 26 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cki8718jm8ylk"
path="res://.godot/imported/4.png-e1992fca2e9382d310b538c2a0feb506.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/小猫走路/4.png"
dest_files=["res://.godot/imported/4.png-e1992fca2e9382d310b538c2a0feb506.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: 282 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://daxqam2huy1gk"
path="res://.godot/imported/猪头怪呼吸.gif-9ce6fb1c231b6f7ae4061400404ea415.tres"
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪呼吸.gif"
dest_files=["res://.godot/imported/猪头怪呼吸.gif-9ce6fb1c231b6f7ae4061400404ea415.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ck8ma6qh5ul42"
path="res://.godot/imported/0.png-72a9049cc4fbf6b9c95cb47f91b81a0c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/0.png"
dest_files=["res://.godot/imported/0.png-72a9049cc4fbf6b9c95cb47f91b81a0c.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: 161 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dq53e1eld84hk"
path="res://.godot/imported/1.png-de9b18c9e9434425a0ab1982039b628d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/1.png"
dest_files=["res://.godot/imported/1.png-de9b18c9e9434425a0ab1982039b628d.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: 152 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqxn6tb5mfjn8"
path="res://.godot/imported/2.png-2c15a79b2a17e171cd8b6d6af298a893.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/2.png"
dest_files=["res://.godot/imported/2.png-2c15a79b2a17e171cd8b6d6af298a893.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: 163 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cn2fs45sdwor1"
path="res://.godot/imported/3.png-f08f1437e50af1577f78e3011fd43b9e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪呼吸/3.png"
dest_files=["res://.godot/imported/3.png-f08f1437e50af1577f78e3011fd43b9e.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: 573 KiB

View File

@ -0,0 +1,14 @@
[remap]
importer="gif.animated.texture.plugin"
type="SpriteFrames"
uid="uid://bqdt20k3cwj4x"
path="res://.godot/imported/猪头怪走路.gif-88efce8999d5dda220f1406f2ee092c2.tres"
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路.gif"
dest_files=["res://.godot/imported/猪头怪走路.gif-88efce8999d5dda220f1406f2ee092c2.tres"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bme3wsur7dt2i"
path="res://.godot/imported/0.png-275f556556749f127f30205952c2e4ab.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/0.png"
dest_files=["res://.godot/imported/0.png-275f556556749f127f30205952c2e4ab.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: 164 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cswywsb7kwb26"
path="res://.godot/imported/1.png-1e141a87c8170ff58af0e8ac5b9fc03d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/1.png"
dest_files=["res://.godot/imported/1.png-1e141a87c8170ff58af0e8ac5b9fc03d.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: 164 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dxwsi8rhc1174"
path="res://.godot/imported/2.png-d6296166d3a43eefb55fd34a0062fe34.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/2.png"
dest_files=["res://.godot/imported/2.png-d6296166d3a43eefb55fd34a0062fe34.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: 165 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5sd83hm0mvj7"
path="res://.godot/imported/3.png-00f582a90871f09198fa8492e30f4173.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/3.png"
dest_files=["res://.godot/imported/3.png-00f582a90871f09198fa8492e30f4173.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: 168 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bs85ggrqdepuw"
path="res://.godot/imported/4.png-c448a5c86b29af82b3229017189e1bbf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/4.png"
dest_files=["res://.godot/imported/4.png-c448a5c86b29af82b3229017189e1bbf.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: 172 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ba3d81rnh650h"
path="res://.godot/imported/5.png-d4627bce94628fe63ae73a38457719a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/5.png"
dest_files=["res://.godot/imported/5.png-d4627bce94628fe63ae73a38457719a3.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: 168 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fhgedba7pqak"
path="res://.godot/imported/6.png-e23ce3a71236b74b1f0acb712aaa3383.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/6.png"
dest_files=["res://.godot/imported/6.png-e23ce3a71236b74b1f0acb712aaa3383.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: 172 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3tobb0mw0tlx"
path="res://.godot/imported/7.png-2e70ef777ed8ad01e5e66a04c8016783.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_盒子猫/猪头怪走路/7.png"
dest_files=["res://.godot/imported/7.png-2e70ef777ed8ad01e5e66a04c8016783.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: 2.9 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5pwb4fm46sad"
path="res://.godot/imported/e_墙上纸张.png-9529f37fa230b24980d0400b8625c717.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s08_瞎子卧室/e_墙上纸张.png"
dest_files=["res://.godot/imported/e_墙上纸张.png-9529f37fa230b24980d0400b8625c717.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: 26 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1seskftkw08q"
path="res://.godot/imported/特写示意图.png-1b47bcdc6d8376ab4a98fabbc7cbaba6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s08_瞎子卧室/墙上纸张特写/特写示意图.png"
dest_files=["res://.godot/imported/特写示意图.png-1b47bcdc6d8376ab4a98fabbc7cbaba6.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: 12 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dx3i8mchgux1d"
path="res://.godot/imported/纸张.png-680a3fb0d6a8ca9087ecb665055d83f6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s08_瞎子卧室/墙上纸张特写/纸张.png"
dest_files=["res://.godot/imported/纸张.png-680a3fb0d6a8ca9087ecb665055d83f6.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: 35 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djnj82yw5rtrr"
path="res://.godot/imported/背景墙.png-4f5930b3d1134522aed7cb01338460ff.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s08_瞎子卧室/墙上纸张特写/背景墙.png"
dest_files=["res://.godot/imported/背景墙.png-4f5930b3d1134522aed7cb01338460ff.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: 444 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bg60rv85nopgq"
path="res://.godot/imported/bg.jpg-45ff96e237d07e886c437761e535d540.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c02/s12_盒子猫/bg.jpg"
dest_files=["res://.godot/imported/bg.jpg-45ff96e237d07e886c437761e535d540.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.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://i48mll7tt7rt"
path="res://.godot/imported/c02_围观B_1.wav-8782c49168d1fed84bbf4d4ccb7e9461.sample"
[deps]
source_file="res://asset/audio/peiyin_new/c02_围观B_1.wav"
dest_files=["res://.godot/imported/c02_围观B_1.wav-8782c49168d1fed84bbf4d4ccb7e9461.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://djg4pcmjixhue"
path="res://.godot/imported/c02_围观B_2.wav-c9f8559fcbda0c5c9306b62a919e1000.sample"
[deps]
source_file="res://asset/audio/peiyin_new/c02_围观B_2.wav"
dest_files=["res://.godot/imported/c02_围观B_2.wav-c9f8559fcbda0c5c9306b62a919e1000.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bli6g66vo2wmb"
path="res://.godot/imported/c02_围观B_3.wav-fc49bc66da6dc39676af9d6a47f8198d.sample"
[deps]
source_file="res://asset/audio/peiyin_new/c02_围观B_3.wav"
dest_files=["res://.godot/imported/c02_围观B_3.wav-fc49bc66da6dc39676af9d6a47f8198d.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@ -1,4 +1,4 @@
[gd_resource type="SpriteFrames" load_steps=732 format=3 uid="uid://b7fhheih1hbvf"]
[gd_resource type="SpriteFrames" load_steps=740 format=3 uid="uid://b7fhheih1hbvf"]
[ext_resource type="Texture2D" uid="uid://bpqrd6vo3j17m" path="res://asset/art/animation/c00_吕萍_记笔记_right/吕萍-拿本子记录1.png" id="1_6sdvl"]
[ext_resource type="Texture2D" uid="uid://dvq64espa37lx" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx1.png" id="1_ekv0l"]
@ -731,6 +731,14 @@
[ext_resource type="Texture2D" uid="uid://6i4of4vv4hmm" path="res://asset/art/gif/c02_公寓过道/吕萍点灯/19.png" id="462_6rp57"]
[ext_resource type="Texture2D" uid="uid://be5st5y55w8hm" path="res://asset/art/gif/c02_公寓过道/吕萍点灯/20.png" id="463_1ad0b"]
[ext_resource type="Texture2D" uid="uid://brfk4su6wbe2w" path="res://asset/art/gif/c02_公寓过道/吕萍点灯/21.png" id="464_05637"]
[ext_resource type="Texture2D" uid="uid://bk3ctqo0njfx6" path="res://asset/art/gif/c02_盒子猫/小猫呼吸/0.png" id="694_dnl1u"]
[ext_resource type="Texture2D" uid="uid://bxu5ggucxkbk6" path="res://asset/art/gif/c02_盒子猫/小猫呼吸/1.png" id="695_cerh8"]
[ext_resource type="Texture2D" uid="uid://cuxs057je376v" path="res://asset/art/gif/c02_盒子猫/小猫呼吸/2.png" id="696_qrnvl"]
[ext_resource type="Texture2D" uid="uid://cxaan7ayafkuk" path="res://asset/art/gif/c02_盒子猫/小猫走路/0.png" id="697_bdbue"]
[ext_resource type="Texture2D" uid="uid://dm2tlsxrdir8l" path="res://asset/art/gif/c02_盒子猫/小猫走路/1.png" id="698_44oos"]
[ext_resource type="Texture2D" uid="uid://b2dmfqvjq628v" path="res://asset/art/gif/c02_盒子猫/小猫走路/2.png" id="699_orc8c"]
[ext_resource type="Texture2D" uid="uid://bcclw4ch2h51i" path="res://asset/art/gif/c02_盒子猫/小猫走路/3.png" id="700_h2j62"]
[ext_resource type="Texture2D" uid="uid://cki8718jm8ylk" path="res://asset/art/gif/c02_盒子猫/小猫走路/4.png" id="701_6a88i"]
[resource]
animations = [{
@ -3197,6 +3205,60 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("694_dnl1u")
}, {
"duration": 1.0,
"texture": ExtResource("695_cerh8")
}, {
"duration": 1.0,
"texture": ExtResource("696_qrnvl")
}],
"loop": true,
"name": &"c02_盒子猫_idle_r",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("697_bdbue")
}, {
"duration": 1.0,
"texture": ExtResource("698_44oos")
}, {
"duration": 1.0,
"texture": ExtResource("699_orc8c")
}, {
"duration": 1.0,
"texture": ExtResource("700_h2j62")
}, {
"duration": 1.0,
"texture": ExtResource("701_6a88i")
}],
"loop": true,
"name": &"c02_盒子猫_running_r",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("697_bdbue")
}, {
"duration": 1.0,
"texture": ExtResource("698_44oos")
}, {
"duration": 1.0,
"texture": ExtResource("699_orc8c")
}, {
"duration": 1.0,
"texture": ExtResource("700_h2j62")
}, {
"duration": 1.0,
"texture": ExtResource("701_6a88i")
}],
"loop": true,
"name": &"c02_盒子猫_walking_r",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("331_alfc2")
}, {
"duration": 1.0,

View File

@ -1,11 +1,10 @@
[gd_scene load_steps=8 format=3 uid="uid://dayyx4jerj7io"]
[gd_scene load_steps=7 format=3 uid="uid://dayyx4jerj7io"]
[ext_resource type="Script" uid="uid://bee4ot74k4wg2" path="res://scene/ground/ground.gd" id="1_0vrlo"]
[ext_resource type="PackedScene" uid="uid://cjhw5ecygrqty" path="res://scene/player/main_player.tscn" id="3_atha7"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="3_t73yw"]
[ext_resource type="PackedScene" uid="uid://cqkeegrcdjyg4" path="res://scene/ground/camera/camera_focus_marker.tscn" id="4_mgk0a"]
[ext_resource type="Script" uid="uid://dpnny2y808k71" path="res://config/audio/random_audio_stream_player.gd" id="5_7mb2q"]
[ext_resource type="Texture2D" uid="uid://ciq7uoe3nmmrq" path="res://asset/art/scene/c02/旧版/s06_院子回忆版/fg_有人.png" id="5_i5hii"]
[sub_resource type="GDScript" id="GDScript_qxugl"]
script/source = "extends CanvasLayer
@ -59,6 +58,7 @@ portal_name = "right"
[node name="MainPlayer" parent="." node_paths=PackedStringArray("camera_marker") instance=ExtResource("3_atha7")]
unique_name_in_owner = true
position = Vector2(41, 88)
catty_light_energy = 1.0
camera_marker = NodePath("../CameraFocusMarker")
[node name="CameraFocusMarker" parent="." node_paths=PackedStringArray("focusing_node") instance=ExtResource("4_mgk0a")]
@ -77,7 +77,6 @@ motion_scale = Vector2(1.1, 1.1)
[node name="FGSprite2D" type="Sprite2D" parent="ParallaxForeground/FGParallaxLayer"]
unique_name_in_owner = true
texture = ExtResource("5_i5hii")
centered = false
offset = Vector2(0, -120)

View File

@ -43,7 +43,7 @@ static var GROUND_SCENE_PATH_DICT = {
"c02_s09": "res://scene/ground/scene/c02/s09_裂缝.tscn",
"c02_s10": "res://scene/ground/scene/c02/s10_空房间.tscn",
"c02_s11": "res://scene/ground/scene/c02/s11_一楼火灾.tscn", # 注:该场景合并在了 c02_s03 院子中
# "c02_s12": "res://scene/ground/scene/c02/s12_1014诡异版.tscn",
"c02_s12": "res://scene/ground/scene/c02/s12_盒子猫.tscn",
# "c02_s13": "res://scene/ground/scene/c02/s13_院子诡异版.tscn",
# "c02_s14": "res://scene/ground/scene/c02/s14_过道诡异版.tscn",
# "c02_s15": "res://scene/ground/scene/c02/s15_1014家具版.tscn",

View File

@ -512,6 +512,7 @@ shape = SubResource("RectangleShape2D_jd8t2")
[node name="MainPlayer" parent="Ground" index="5"]
visible = false
position = Vector2(26, 118)
catty_light_energy = 1.0
character = "小小蝶"
action_locked = true
action_freezed = true

View File

@ -47,6 +47,7 @@ note_key = "c02_s01_门口"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(78, 103)
catty_light_energy = null
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
texture = null

View File

@ -248,6 +248,7 @@ texture = SubResource("GradientTexture2D_fvldj")
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(53, 98)
catty_light_energy = null
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
texture = null

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=64 format=3 uid="uid://djc2uaefhmu7"]
[gd_scene load_steps=65 format=3 uid="uid://djc2uaefhmu7"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"]
[ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_animation.gd" id="2_dt5aj"]
@ -271,6 +271,10 @@ size = Vector2(10, 50)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1smj8"]
size = Vector2(250, 50)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_em2ma"]
resource_local_to_scene = true
size = Vector2(10, 70)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_rnk1v"]
[sub_resource type="Gradient" id="Gradient_em2ma"]
@ -713,6 +717,13 @@ trigger_mode = "interact"
one_shot = false
hook_method = "run_away"
[node name="Sign" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉" index="0"]
offset_top = -23.0
offset_bottom = -23.0
[node name="CollisionShape2D" parent="Ground/DeployLayer/火灾/Ambush等待的小蝉/Area2D" index="0"]
shape = SubResource("RectangleShape2D_em2ma")
[node name="Interactable柜子" parent="Ground/DeployLayer" index="25" instance=ExtResource("8_xt8j0")]
visible = false
position = Vector2(1772, 48)
@ -777,3 +788,4 @@ blend_mode = 1
[editable path="Ground"]
[editable path="Ground/DeployLayer/Interactable铁门"]
[editable path="Ground/DeployLayer/Interactable铁门/Sign"]
[editable path="Ground/DeployLayer/火灾/Ambush等待的小蝉"]

View File

@ -77,6 +77,7 @@ position = Vector2(295, -6)
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(447, 98)
catty_light_energy = null
facing_direction = Vector2(-1, 0)
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]

View File

@ -160,6 +160,7 @@ note_key = "c02_一楼楼道被挡住"
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(41, 98)
catty_light_energy = null
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(45, -9)

View File

@ -63,6 +63,7 @@ position = Vector2(-5, 78)
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(41, 98)
catty_light_energy = null
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(11, -1)

View File

@ -1,8 +1,9 @@
[gd_scene load_steps=20 format=3 uid="uid://ce2vyyg2reg52"]
[gd_scene load_steps=21 format=3 uid="uid://ce2vyyg2reg52"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
[ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
[ext_resource type="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c02/s08_瞎子卧室/bg_瞎子卧室.png" id="3_iares"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"]
[ext_resource type="Texture2D" uid="uid://b2o75ahjqq0yg" path="res://asset/art/临时草稿/瞎子小蝉谈话.png" id="4_f7817"]
[ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"]
[ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="5_f7817"]
@ -132,7 +133,16 @@ matched_sign_texture = null
position = Vector2(676, 63)
matched_sign_texture = null
[node name="瞎子小蝉对话" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="2"]
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_1ws4i")]
position = Vector2(203, -29)
debug_note = "墙画:盒子猫"
portal_name = "1"
target_scene = "c02_s12"
target_portal = "left"
status = "opened"
matched_sign_texture = null
[node name="瞎子小蝉对话" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="3"]
visible = false
position = Vector2(253, 47)
scale = Vector2(0.2, 0.2)
@ -152,7 +162,7 @@ scale = Vector2(0.3, 0.3)
sprite_frames = ExtResource("12_t3h08")
animation = &"gif"
[node name="Pickable麻将" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_f7817")]
[node name="Pickable麻将" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_f7817")]
position = Vector2(442, 78)
prop_key = "prop_麻将"
@ -161,13 +171,13 @@ rotation = -0.862373
scale = Vector2(0.2, 0.2)
texture = ExtResource("6_u7aew")
[node name="煤油灯" parent="Ground/DeployLayer" index="4" instance=ExtResource("7_rn30l")]
[node name="煤油灯" parent="Ground/DeployLayer" index="5" instance=ExtResource("7_rn30l")]
position = Vector2(168, 34)
hide_texture = true
gaslight_texture = ExtResource("8_f6mma")
ground_light_texture = ExtResource("9_bp5fr")
[node name="Ambush出隧道" parent="Ground/DeployLayer" index="5" instance=ExtResource("10_f6mma")]
[node name="Ambush出隧道" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_f6mma")]
position = Vector2(555, 55)
trigger_mode = "interact"
hook_method = "enter_room"
@ -181,11 +191,11 @@ light_mask = 0
[node name="CollisionShape2D" parent="Ground/DeployLayer/Ambush出隧道/Area2D" index="0"]
shape = SubResource("RectangleShape2D_t3h08")
[node name="Ambush偷听" parent="Ground/DeployLayer" index="6" instance=ExtResource("10_f6mma")]
[node name="Ambush偷听" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_f6mma")]
position = Vector2(619, 59)
hook_method = "eavesdrop_start"
[node name="吕萍钻出" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="7"]
[node name="吕萍钻出" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="8"]
visible = false
position = Vector2(534, 0)
sprite_frames = ExtResource("13_t3h08")

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=14 format=3 uid="uid://ryups1dnwdto"]
[gd_scene load_steps=15 format=3 uid="uid://ryups1dnwdto"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_o0m5w"]
[ext_resource type="Script" uid="uid://beqnywn1dlnax" path="res://scene/ground/scene/c02/s09_animation.gd" id="2_34a6f"]
[ext_resource type="Texture2D" uid="uid://rfhf4usybjdc" path="res://asset/art/scene/c02/s09_裂缝/红色场景/背景.png" id="3_6xql4"]
[ext_resource type="Texture2D" uid="uid://cbvf6bfjprl8t" path="res://asset/art/scene/c02/s09_裂缝/红色场景/大麻绳.png" id="4_34a6f"]
[ext_resource type="Texture2D" uid="uid://ddcburr57lb75" path="res://asset/art/scene/c02/旧版/s12_1014诡异版/bg_衔接阴影.png" id="5_5ow41"]
[ext_resource type="Texture2D" uid="uid://cufmquyduq804" path="res://asset/art/scene/c02/s09_裂缝/红色场景/小床上.png" id="5_nmucy"]
[ext_resource type="SpriteFrames" uid="uid://ckpe1xevbgr6h" path="res://asset/art/gif/c02_裂缝过道/frames.tres" id="5_p4f1j"]
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="6_6xql4"]
@ -52,6 +53,11 @@ z_index = 6
position = Vector2(2181, 28)
texture = ExtResource("4_34a6f")
[node name="衔接阴影" type="Sprite2D" parent="Ground/BGSprite2D" index="1"]
position = Vector2(2420, -49)
scale = Vector2(0.6, 0.6)
texture = ExtResource("5_5ow41")
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(79, 88)
target_scene = "c02_s08"
@ -104,7 +110,6 @@ texture = ExtResource("6_nntqg")
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(3421, 25)
texture = null
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(70, 150, 3850, 150)

View File

@ -309,6 +309,7 @@ texture = SubResource("GradientTexture2D_3ftnp")
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(410, 96.622)
catty_light_energy = 1.0
facing_direction = Vector2(1, 0)
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]

View File

@ -1,58 +0,0 @@
[gd_scene load_steps=9 format=3 uid="uid://da4cuf2i3nwpj"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
[ext_resource type="Texture2D" uid="uid://bnvrbjxo3duu2" path="res://asset/art/scene/c02/旧版/s12_1014诡异版/bg_1014诡异幻境背景.png" id="3_dyuvy"]
[ext_resource type="Texture2D" uid="uid://ddcburr57lb75" path="res://asset/art/scene/c02/旧版/s12_1014诡异版/bg_衔接阴影.png" id="4_y77d6"]
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="4_yfs7q"]
[ext_resource type="Texture2D" uid="uid://ct12wdsm57eyy" path="res://asset/art/scene/c02/旧版/s12_1014诡异版/e_床上物品组.png" id="5_irgk5"]
[ext_resource type="PackedScene" uid="uid://b8ncf4d0jda8r" path="res://scene/entity/partical/particals_ash_horizontal.tscn" id="5_q2aoh"]
[ext_resource type="Texture2D" uid="uid://bjvungu3tb155" path="res://asset/art/scene/c02/旧版/s12_1014诡异版/fg_1014前景.png" id="6_yct81"]
[node name="S12" type="Node2D"]
[node name="Ground" parent="." instance=ExtResource("1_ngo77")]
scene_name = "c02_s12"
default_portal = "right"
[node name="AnimationPlayer" parent="Ground" index="0"]
script = ExtResource("2_7ah3n")
oneshot_animation = ""
[node name="BGSprite2D" parent="Ground" index="2"]
texture = ExtResource("3_dyuvy")
[node name="衔接阴影" type="Sprite2D" parent="Ground/BGSprite2D" index="0"]
position = Vector2(2827, -9)
texture = ExtResource("4_y77d6")
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(332, 27)
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(3691, 13)
[node name="ParticalsAsh" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_q2aoh")]
z_index = 4
position = Vector2(2666, 0)
[node name="ParticalsAsh2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_q2aoh")]
z_index = 4
position = Vector2(1725, 2)
[node name="ParticalsAsh3" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_q2aoh")]
z_index = 4
position = Vector2(925, 1)
[node name="Interactable床" parent="Ground/DeployLayer" index="5" instance=ExtResource("4_yfs7q")]
position = Vector2(333, 76)
texture = ExtResource("5_irgk5")
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(3584, -7)
texture = ExtResource("6_yct81")
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(37, 150, 4200, 150)
[editable path="Ground"]

View File

@ -0,0 +1,61 @@
[gd_scene load_steps=6 format=3 uid="uid://da4cuf2i3nwpj"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
[ext_resource type="Script" uid="uid://cyd1xo106unfk" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
[ext_resource type="Texture2D" uid="uid://bg60rv85nopgq" path="res://asset/art/scene/c02/s12_盒子猫/bg.jpg" id="3_72mc1"]
[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="4_yv74g"]
[ext_resource type="SpriteFrames" uid="uid://b85gyfhk1mg6r" path="res://asset/art/gif/c02_盒子猫/frames.tres" id="5_ycgng"]
[node name="S12" type="Node2D"]
[node name="Ground" parent="." instance=ExtResource("1_ngo77")]
scene_name = "c02_s12"
player_y = 45
footstep_type = "crawling"
[node name="AnimationPlayer" parent="Ground" index="0"]
script = ExtResource("2_7ah3n")
oneshot_animation = ""
[node name="BGSprite2D" parent="Ground" index="2"]
scale = Vector2(0.27, 0.27)
texture = ExtResource("3_72mc1")
offset = Vector2(0, -550)
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(306, 11)
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(1225, 6)
target_scene = "c02_s08"
target_portal = "1"
status = "opened"
[node name="AutoplayAnimatedSprite" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_yv74g")]
position = Vector2(132, 19)
scale = Vector2(0.1, 0.1)
sprite_frames = ExtResource("5_ycgng")
animation = &"猪头怪走路"
flip_h = true
autostart = false
action_configs = Array[Dictionary]([{
"animation_intro": &"猪头怪呼吸",
&"animation_next": "猪头怪走路"
}])
move_configs = Array[Dictionary]([{
"animation": &"猪头怪走路",
"velocity": Vector2(70, 0)
}])
[node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(235, 113)
character = "盒子猫"
facing_direction = Vector2(1, 0)
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
position = Vector2(3584, -7)
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(37, 150, 1270, 150)
[editable path="Ground"]

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://d3dl18rsr3xhe"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_tdvf5"]
[ext_resource type="Script" uid="uid://dm2k64y5erxrf" path="res://scene/ground/scene/template_animation.gd" id="2_oj87v"]
[node name="TemplateScene_S00" type="Node2D"]
[node name="Ground" parent="." instance=ExtResource("1_tdvf5")]
[node name="AnimationPlayer" parent="Ground" index="0"]
script = ExtResource("2_oj87v")
oneshot_animation = ""
[editable path="Ground"]

View File

@ -9,7 +9,8 @@ signal interacted
set(val):
enabled = val
if is_node_ready():
sign_mark.enabled = val
_check_sign_mark_display()
@export var unrevealed_sign_texture: Texture2D
@export var unmatched_sign_texture: Texture2D
@export var matched_sign_texture: Texture2D
@ -79,12 +80,15 @@ func _ready() -> void:
elif tried_times > 0:
animated_sprite.play("小手_show")
coin = get_node("Pickable元宝")
tin_coin_drop = ground_archive.get_value(name, "tin_coin_drop", false)
coin.triggered.connect(func(): tin_coin_drop = false)
func _check_sign_mark_display():
sign_mark.enabled = enabled and not interacting
func _reset(_body = null) -> void:
_reset_sign_testure_to_prop()
var prop_hud = SceneManager.get_prop_hud() as PropHud
@ -108,12 +112,14 @@ func _reset_sign_testure_to_prop():
# 根据当前 prop调整 sign 所显示的 texture
func _set_sign_texture_to_prop(key):
_check_sign_mark_display()
if tried_times == 0:
# 首次交互前 unrevealed
sign_mark.sprite2d.texture = unrevealed_sign_texture
return
sign_mark.sprite2d.texture = matched_sign_texture
func _on_exit(_body = null) -> void:
# disconnect signal
var prop_hud = SceneManager.get_prop_hud() as PropHud
@ -138,14 +144,19 @@ func _quit_communicating() -> void:
animated_sprite.visible = true
var interact_mutex = Mutex.new()
var interacting := false:
set(val):
interacting = val
_check_sign_mark_display()
var communicating = false
func _on_interacted() -> void:
if not interact_mutex.try_lock():
if interacting:
print("小手 interacting 锁定中")
return
interacting = true
interacted.emit()
tried_times += 1
if tried_times == 1:
@ -156,7 +167,7 @@ func _on_interacted() -> void:
SceneManager.enable_prop_item(holding_prop)
holding_prop = ""
animated_sprite.play("小手_show")
interact_mutex.unlock()
interacting = false
return
if is_holding_cup:
@ -176,7 +187,7 @@ func _on_interacted() -> void:
sfx_bgm.finished.connect(_quit_communicating, CONNECT_ONE_SHOT)
else:
_quit_communicating()
interact_mutex.unlock()
interacting = false
return
var key = SceneManager.get_current_prop(false)
@ -236,4 +247,4 @@ func _on_interacted() -> void:
sign_mark.invalid_shake(matched_sign_texture, unmatched_sign_texture)
SceneManager.release_player()
interact_mutex.unlock()
interacting = false

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://cbpy56epwth0j"]
[gd_scene load_steps=12 format=3 uid="uid://cbpy56epwth0j"]
[ext_resource type="Texture2D" uid="uid://bj6ue0xsk2s1t" path="res://asset/art/little_game/弹珠/球1.png" id="1_83xud"]
[ext_resource type="Script" uid="uid://bgbpv18g74v3s" path="res://scene/little_game/弹珠游戏/balls_falling.gd" id="1_kxs1d"]
@ -15,21 +15,31 @@ point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_5hbq4"]
curve = SubResource("Curve_46fdv")
[sub_resource type="Curve" id="Curve_kxs1d"]
_limits = [0.0, 3.0, 0.0, 1.0]
_data = [Vector2(0.00981997, 0.806956), 0.0, 0.0, 0, 0, Vector2(0.99018, 1.24783), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_jw8nx"]
curve = SubResource("Curve_kxs1d")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_3q04e"]
particle_flag_disable_z = true
emission_shape = 3
emission_box_extents = Vector3(300, 50, 1)
angle_min = -9.99999
angle_max = 10.0
emission_box_extents = Vector3(50, 50, 1)
angle_min = -45.0
angle_max = 45.0
direction = Vector3(0, 1, 0)
spread = 70.0
initial_velocity_min = 50.0
initial_velocity_max = 100.0
angular_velocity_min = -5.00002
angular_velocity_max = 4.99998
angular_velocity_curve = SubResource("CurveTexture_5hbq4")
gravity = Vector3(0, 98, 0)
scale_min = 0.4
scale_max = 0.5
scale_min = 0.35
scale_max = 0.4
scale_over_velocity_curve = SubResource("CurveTexture_jw8nx")
collision_mode = 1
collision_friction = 0.5
collision_bounce = 0.0
@ -39,41 +49,46 @@ y_sort_enabled = true
script = ExtResource("1_kxs1d")
[node name="GPUParticles2D" type="GPUParticles2D" parent="."]
position = Vector2(283, -57)
position = Vector2(286, -83)
emitting = false
amount = 70
texture = ExtResource("1_83xud")
lifetime = 3.0
collision_base_size = 20.0
process_material = SubResource("ParticleProcessMaterial_3q04e")
[node name="GPUParticles2D2" type="GPUParticles2D" parent="."]
position = Vector2(283, -57)
position = Vector2(286, -83)
emitting = false
amount = 70
texture = ExtResource("2_n2lia")
lifetime = 3.0
collision_base_size = 20.0
process_material = SubResource("ParticleProcessMaterial_3q04e")
[node name="GPUParticles2D3" type="GPUParticles2D" parent="."]
position = Vector2(283, -57)
position = Vector2(286, -83)
emitting = false
amount = 70
texture = ExtResource("3_kxs1d")
lifetime = 3.0
collision_base_size = 20.0
process_material = SubResource("ParticleProcessMaterial_3q04e")
[node name="GPUParticles2D4" type="GPUParticles2D" parent="."]
position = Vector2(283, -57)
position = Vector2(286, -83)
emitting = false
amount = 70
texture = ExtResource("4_jw8nx")
lifetime = 3.0
collision_base_size = 20.0
process_material = SubResource("ParticleProcessMaterial_3q04e")
[node name="GPUParticles2D5" type="GPUParticles2D" parent="."]
position = Vector2(283, -57)
position = Vector2(286, -83)
emitting = false
amount = 70
texture = ExtResource("5_xovvu")
lifetime = 3.0
collision_base_size = 20.0
process_material = SubResource("ParticleProcessMaterial_3q04e")

View File

@ -289,7 +289,7 @@ func start(
## Apply any changes to the balloon given a new [DialogueLine].
func apply_dialogue_line() -> void:
var translation_key = dialogue_line.translation_key
label.text = ("[wave amp=20.0 freq=5.0][shake rate=10.0 level=3] " + tr(translation_key))
label.text = ("[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] " + tr(translation_key))
label.show()
# 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式
var audio_path = "res://asset/audio/peiyin/ogg/%s.ogg" % translation_key

View File

@ -16,60 +16,6 @@
[ext_resource type="PackedScene" uid="uid://dr0rwr0xjgnjw" path="res://scene/little_game/弹珠游戏/balls_2.tscn" id="7_oii6q"]
[ext_resource type="PackedScene" uid="uid://cbpy56epwth0j" path="res://scene/little_game/弹珠游戏/balls_falling.tscn" id="8_fk3jp"]
[sub_resource type="Animation" id="Animation_3kvx4"]
resource_name = "dispatch_balls"
length = 3.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(1.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"do_dispatch_balls"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Boy/BoyHand:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(308, 0), Vector2(307, 88)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Boy/BoyHand:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 1]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Boy/BoyHand:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 1.26667, 1.9),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_fk3jp"]
length = 0.001
tracks/0/type = "value"
@ -157,6 +103,60 @@ tracks/6/keys = {
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_3kvx4"]
resource_name = "dispatch_balls"
length = 3.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(1.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"do_dispatch_balls"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Boy/BoyHand:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(308, 0), Vector2(307, 88)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Boy/BoyHand:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 1]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Boy/BoyHand:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 1.26667, 1.9),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_dowov"]
resource_name = "give_ball"
length = 3.0
@ -287,7 +287,7 @@ theme_override_colors/font_outline_color = Color(0.401628, 0.253369, 0.0745033,
theme_override_constants/outline_size = 5
theme_override_font_sizes/normal_font_size = 20
bbcode_enabled = true
text = "[wave amp=20.0 freq=5.0 connected=1][shake rate=10.0 level=3 connected=1]弹珠拿出来[/shake][/wave]"
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] 弹珠拿出来"
fit_content = true
horizontal_alignment = 1

View File

@ -12,8 +12,9 @@ signal animation_finished
enable_light = val
if is_node_ready():
light.enabled = enable_light
@export var catty_light_energy := 1.0
@export var camera_marker: CameraFocusMarker
@export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "小小蝶") var character := "吕萍":
@export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "小小蝶", "盒子猫") var character := "吕萍":
set(val):
character = val
# 使用 new方便在 editor 中刷新新值
@ -64,6 +65,7 @@ var current_animation_config := (
)
@onready var light = $PointLight2D as PointLight2D
@onready var catty_light = $CattyPointLight2D as PointLight2D
@onready var footstep_timer = %FootstepTimer as Timer
@onready var sprite = %AnimatedSprite2D as AnimatedSprite2D
@onready var os_pivot = %OSPivot as Control
@ -85,6 +87,9 @@ func _ready() -> void:
footstep_timer.stop()
sprite.animation_finished.connect(animation_finished.emit)
_check_character_status()
# 如果当前是 prop_小猫玩具完整 ,尝试点亮玩家的灯效;否则无需点亮
if SceneManager.get_current_prop(false) == "prop_小猫玩具完整":
set_catty_light(true)
func _enter_tree() -> void:
@ -148,12 +153,11 @@ func _play_animation() -> void:
check_foot_offset()
# 进一步偏移+播放动画
var config = current_animation_config[current_status]
_sprite_play_with_auto_flip_h(config[0], config[1])
if facing_direction.x > 0.0:
sprite.play(config[1])
if config.size() > 2:
if config.size() > 3:
sprite.offset += config[3]
else:
sprite.play(config[0])
if config.size() > 2:
sprite.offset += config[2]
# 播放脚步音效
@ -175,6 +179,27 @@ func _play_animation() -> void:
os_label.text = "os 测试文本"
func _sprite_play_with_auto_flip_h(left_animation: String, right_animation: String) -> String:
if facing_direction.x > 0.0:
if right_animation:
sprite.flip_h = false
sprite.play(right_animation)
return right_animation
else:
sprite.flip_h = true
sprite.play(left_animation)
return left_animation
else:
if left_animation:
sprite.flip_h = false
sprite.play(left_animation)
return left_animation
else:
sprite.flip_h = true
sprite.play(right_animation)
return right_animation
func _get_speed(direction: Vector2) -> Vector2:
match current_status:
PlayerAnimationConfig.MOVEMENT_WALKING:
@ -214,6 +239,14 @@ func _tweak_camera_marker():
camera_marker.tweak_position(velocity, facing_direction)
func set_catty_light(enable := false):
var tween = create_tween()
if enable:
tween.tween_property(catty_light, "energy", catty_light_energy, 0.5)
else:
tween.tween_property(catty_light, "energy", 0.0, 0.5)
var lock_mutex = Mutex.new()
var release_timer: SceneTreeTimer
@ -227,16 +260,19 @@ func freeze_player(lock_time: float, action_animation: int, auto_quit: bool) ->
if current_animation_config.has(action_animation):
# animation_name, scale, offset
var config = current_animation_config[action_animation]
var animation = config[0]
var animation_l = config[0]
var animation_r = config[0]
sprite.scale = config[1]
sprite.offset = config[2]
if not animation and config.size() >= 5:
animation = config[4] if facing_direction.x > 0.0 else config[3]
if animation and sprite.sprite_frames.has_animation(animation):
sprite.sprite_frames.set_animation_loop(animation, false)
sprite.play(animation)
if config.size() >= 5:
animation_l = config[3]
animation_r = config[4]
var playing_animation = _sprite_play_with_auto_flip_h(animation_l, animation_r)
if auto_quit:
# reset animation after one play
if sprite.sprite_frames.get_animation_loop(playing_animation):
sprite.animation_looped.connect(_play_animation, CONNECT_ONE_SHOT)
else:
sprite.animation_finished.connect(_play_animation, CONNECT_ONE_SHOT)
if lock_time:
if release_timer and release_timer.time_left > 0:

View File

@ -52,8 +52,6 @@ z_index = 5
collision_mask = 2
script = ExtResource("1_3a78y")
running_locked = true
metadata/_edit_vertical_guides_ = [-120.0]
metadata/_edit_horizontal_guides_ = [-9.0]
[node name="PointLight2D" type="PointLight2D" parent="."]
position = Vector2(0, -53)
@ -62,9 +60,17 @@ range_item_cull_mask = 15
texture = SubResource("GradientTexture2D_gk3xo")
height = 10.0
[node name="CattyPointLight2D" type="PointLight2D" parent="."]
position = Vector2(0, -53)
energy = 0.0
range_item_cull_mask = 15
texture = SubResource("GradientTexture2D_gk3xo")
texture_scale = 2.0
height = 10.0
[node name="FootstepTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.5
wait_time = 0.35
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -50)

View File

@ -130,4 +130,22 @@ var ANIMATION_CONFIG = {
# c01_s08 小小蝶_书店递报纸
8: [&"c01_小小蝶_书店递报纸", Vector2.ONE, Vector2(-5, -98.5)],
},
"盒子猫":
{
"scale": Vector2(0.2, 0.2),
"speed_walking": 55.0,
"can_run": true,
"speed_runnig": 100.0,
"walk_footstep": 0.5,
"run_footstep": 7.0 / 10.0 / 2.0,
"os_height": 70.0,
# 如果使用 auto就会自动以最低点为基准
# "auto_foot_offset": true,
"foot_offset": Vector2(0, -300.0),
MOVEMENT_IDLE: [&"", &"c02_盒子猫_idle_r"],
# 此处为[2][3]分别为 sprite 向左、向右时的 offset
MOVEMENT_WALKING: [&"", &"c02_盒子猫_walking_r"],
MOVEMENT_RUNNING: [&"", &"c02_盒子猫_running_r"],
# animation_name, left, right
},
}

View File

@ -189,6 +189,7 @@ func _load_texture_cache() -> void:
func _update_prop_display_with_texture():
if not inventory:
return
var key = ""
# 在没有道具时,展示空手 placeholder
if inventory.enabled_items.is_empty():
display_prop.texture_normal = preload("res://asset/art/ui/hud/placeholder.png")
@ -196,9 +197,14 @@ func _update_prop_display_with_texture():
display_prop.scale = Vector2(1.0, 1.0)
title_label.text = tr("prop_空手")
else:
var key = inventory.current_item_key()
key = inventory.current_item_key()
_display_texture_by_key(display_prop, key)
title_label.text = tr(key)
# 如果当前是 prop_小猫玩具完整尝试点亮玩家的灯效否则无需点亮
var player = SceneManager.get_player()
if player:
player.set_catty_light(key == "prop_小猫玩具完整")
# 选中标记 select_mark; 如果被 free 掉,则重新创建
if select_mark and is_instance_valid(select_mark):
var parent = select_mark.get_parent()
@ -211,9 +217,9 @@ func _update_prop_display_with_texture():
# bag
for i in range(inventory.enabled_items.size()):
var id = wrapi(i, 0, inventory.enabled_items.size())
var key = inventory.enabled_items[id]
var k = inventory.enabled_items[id]
var button = prop_containers[i].get_child(0).get_child(0) as TextureButton
_display_texture_by_key(button, key)
_display_texture_by_key(button, k)
if id == inventory.current_index:
prop_containers[i].get_child(0).add_child(select_mark)
prop_scroll.scroll_horizontal = PROP_CONTAINER_X

View File

@ -55,6 +55,7 @@ theme_override_constants/margin_left = 8
[node name="LeftButton" type="TextureButton" parent="VBoxContainer/HBoxContainer/LeftMargin"]
unique_name_in_owner = true
visible = false
light_mask = 16
layout_mode = 2
size_flags_vertical = 4
texture_normal = ExtResource("2_bjc2b")
@ -125,6 +126,7 @@ layout_mode = 2
[node name="SelectingBG" type="TextureRect" parent="VBoxContainer/HBoxContainer/HudRect/MarginContainer/HBoxContainer/PropScrollContainer/PropHBox/PropContainer/Control"]
unique_name_in_owner = true
self_modulate = Color(0.837083, 0.510264, 0.465919, 1)
light_mask = 16
custom_minimum_size = Vector2(120, 120)
layout_mode = 1
anchors_preset = 8
@ -142,6 +144,7 @@ texture = ExtResource("6_5ixbr")
[node name="DiaplayProp" type="TextureButton" parent="VBoxContainer/HBoxContainer/HudRect/MarginContainer/HBoxContainer/PropScrollContainer/PropHBox/PropContainer/Control"]
unique_name_in_owner = true
light_mask = 16
layout_mode = 0
offset_right = 146.0
offset_bottom = 146.0
@ -179,6 +182,7 @@ custom_minimum_size = Vector2(110, 110)
layout_mode = 2
[node name="Prop" type="TextureButton" parent="VBoxContainer/HBoxContainer/HudRect/MarginContainer/HBoxContainer/PropsBagScroll/PropsBag/PropContainer/Control"]
light_mask = 16
layout_mode = 0
offset_right = 146.0
offset_bottom = 146.0
@ -188,6 +192,7 @@ stretch_mode = 5
[node name="SelectMark" type="TextureRect" parent="VBoxContainer/HBoxContainer/HudRect/MarginContainer/HBoxContainer/PropsBagScroll/PropsBag/PropContainer/Control"]
unique_name_in_owner = true
light_mask = 16
custom_minimum_size = Vector2(130, 130)
layout_mode = 1
anchors_preset = 8
@ -211,6 +216,7 @@ theme_override_constants/margin_right = 8
[node name="RightButton" type="TextureButton" parent="VBoxContainer/HBoxContainer/RightMargin"]
unique_name_in_owner = true
visible = false
light_mask = 16
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4