除晦游戏更新

This commit is contained in:
cakipaul 2025-09-17 22:41:06 +08:00
parent 5bd23edb6e
commit 874e4587f6
24 changed files with 890 additions and 30 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgax11gclu80s"
path="res://.godot/imported/ux_除晦手.png-6c68f35f3067c90c07cbb89651b18feb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/scene/c04/s00_除晦游戏/ux_除晦手.png"
dest_files=["res://.godot/imported/ux_除晦手.png-6c68f35f3067c90c07cbb89651b18feb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -69,3 +69,36 @@ c03_肉铺账本6,二十日 卖三〇三三 猪肉一斤,,,,
c03_肉铺账本7,二十五日 新货到 米肉二十斤 自留 米肉五斤,,,, c03_肉铺账本7,二十五日 新货到 米肉二十斤 自留 米肉五斤,,,,
c03_肉铺账本8,二十六日 赠启钊兄 米肉二斤,,,, c03_肉铺账本8,二十六日 赠启钊兄 米肉二斤,,,,
c03_肉铺账本9,二十七日 卖三〇一二 米肉一斤,,,, c03_肉铺账本9,二十七日 卖三〇一二 米肉一斤,,,,
c04_除晦游戏1,假神医?,,,,
c04_除晦游戏2,一家人都是骗子,,,,
c04_除晦游戏3,外地人,,,,
c04_除晦游戏4,搬来才多久,,,,
c04_除晦游戏5,李家小弟被他们害死了,,,,
c04_除晦游戏6,三楼晚上会有小孩哭,,,,
c04_除晦游戏7,不准去三楼玩,,,,
c04_除晦游戏8,失踪的小女孩是被他们拐走的把,,,,
c04_除晦游戏9,又有人失踪了,,,,
c04_除晦游戏10,搞得我都不敢出门了,,,,
c04_除晦游戏11,他们家养了只黑猫,,,,
c04_除晦游戏12,黑猫不吉利,,,,
c04_除晦游戏13,那家男的能和死人说话,,,,
c04_除晦游戏14,听说夫妻两人早就死了,,,,
c04_除晦游戏15,摊上这种父母真是作孽,,,,
c04_除晦游戏16,轻点声,,,,
c04_除晦游戏17,小心被勾了魂,,,,
c04_除晦游戏18,好久都不出门,,,,
c04_除晦游戏19,肯定心虚了,,,,
c04_除晦游戏20,就那家女儿长得这么胖,,,,
c04_除晦游戏21,他们家还吃人呢,,,,
c04_除晦游戏22,性格一点不像女孩,,,,
c04_除晦游戏23,不知道养了个什么东西出来,,,,
c04_除晦游戏24,真邋遢,,,,
c04_除晦游戏25,他们的女儿其实是儿子吧,,,,
c04_除晦游戏26,趁她尿尿的时候看一下,,,,
c04_除晦游戏27,身上都是怪味道,,,,
c04_除晦游戏28,不知道拜了哪路妖怪,,,,
c04_除晦游戏29,他老婆还是个哑巴,,,,
c04_除晦游戏30,那男人把他老婆的舌头给妖怪吃,,,,
c04_除晦游戏31,亲眼所见啊,,,,
c04_除晦游戏32,早点去死吧,,,,
c04_除晦游戏33,活着祸害人,,,,

1 keys zh_CN _character _notes _tags en
69 c03_肉铺账本7 二十五日 新货到 米肉二十斤 自留 米肉五斤
70 c03_肉铺账本8 二十六日 赠启钊兄 米肉二斤
71 c03_肉铺账本9 二十七日 卖三〇一二 米肉一斤
72 c04_除晦游戏1 假神医?
73 c04_除晦游戏2 一家人都是骗子
74 c04_除晦游戏3 外地人
75 c04_除晦游戏4 搬来才多久
76 c04_除晦游戏5 李家小弟被他们害死了
77 c04_除晦游戏6 三楼晚上会有小孩哭
78 c04_除晦游戏7 不准去三楼玩
79 c04_除晦游戏8 失踪的小女孩是被他们拐走的把
80 c04_除晦游戏9 又有人失踪了
81 c04_除晦游戏10 搞得我都不敢出门了
82 c04_除晦游戏11 他们家养了只黑猫
83 c04_除晦游戏12 黑猫不吉利
84 c04_除晦游戏13 那家男的能和死人说话
85 c04_除晦游戏14 听说夫妻两人早就死了
86 c04_除晦游戏15 摊上这种父母真是作孽
87 c04_除晦游戏16 轻点声
88 c04_除晦游戏17 小心被勾了魂
89 c04_除晦游戏18 好久都不出门
90 c04_除晦游戏19 肯定心虚了
91 c04_除晦游戏20 就那家女儿长得这么胖
92 c04_除晦游戏21 他们家还吃人呢
93 c04_除晦游戏22 性格一点不像女孩
94 c04_除晦游戏23 不知道养了个什么东西出来
95 c04_除晦游戏24 真邋遢
96 c04_除晦游戏25 他们的女儿其实是儿子吧
97 c04_除晦游戏26 趁她尿尿的时候看一下
98 c04_除晦游戏27 身上都是怪味道
99 c04_除晦游戏28 不知道拜了哪路妖怪
100 c04_除晦游戏29 他老婆还是个哑巴
101 c04_除晦游戏30 那男人把他老婆的舌头给妖怪吃
102 c04_除晦游戏31 亲眼所见啊
103 c04_除晦游戏32 早点去死吧
104 c04_除晦游戏33 活着祸害人

View File

@ -96,3 +96,39 @@
二十六日 赠启钊兄 米肉二斤[ID:c03_肉铺账本8] 二十六日 赠启钊兄 米肉二斤[ID:c03_肉铺账本8]
二十七日 卖三〇一二 米肉一斤[ID:c03_肉铺账本9] 二十七日 卖三〇一二 米肉一斤[ID:c03_肉铺账本9]
=> END => END
~ c04_除晦游戏
假神医?[ID:c04_除晦游戏1]
一家人都是骗子[ID:c04_除晦游戏2]
外地人[ID:c04_除晦游戏3]
搬来才多久[ID:c04_除晦游戏4]
李家小弟被他们害死了[ID:c04_除晦游戏5]
三楼晚上会有小孩哭[ID:c04_除晦游戏6]
不准去三楼玩[ID:c04_除晦游戏7]
失踪的小女孩是被他们拐走的把[ID:c04_除晦游戏8]
又有人失踪了[ID:c04_除晦游戏9]
搞得我都不敢出门了[ID:c04_除晦游戏10]
他们家养了只黑猫[ID:c04_除晦游戏11]
黑猫不吉利[ID:c04_除晦游戏12]
那家男的能和死人说话[ID:c04_除晦游戏13]
听说夫妻两人早就死了[ID:c04_除晦游戏14]
摊上这种父母真是作孽[ID:c04_除晦游戏15]
轻点声[ID:c04_除晦游戏16]
小心被勾了魂[ID:c04_除晦游戏17]
好久都不出门[ID:c04_除晦游戏18]
肯定心虚了[ID:c04_除晦游戏19]
就那家女儿长得这么胖[ID:c04_除晦游戏20]
他们家还吃人呢[ID:c04_除晦游戏21]
性格一点不像女孩[ID:c04_除晦游戏22]
不知道养了个什么东西出来[ID:c04_除晦游戏23]
真邋遢[ID:c04_除晦游戏24]
他们的女儿其实是儿子吧[ID:c04_除晦游戏25]
趁她尿尿的时候看一下[ID:c04_除晦游戏26]
身上都是怪味道[ID:c04_除晦游戏27]
不知道拜了哪路妖怪[ID:c04_除晦游戏28]
他老婆还是个哑巴[ID:c04_除晦游戏29]
那男人把他老婆的舌头给妖怪吃[ID:c04_除晦游戏30]
亲眼所见啊[ID:c04_除晦游戏31]
早点去死吧[ID:c04_除晦游戏32]
活着祸害人[ID:c04_除晦游戏33]
=> END

View File

@ -381,3 +381,4 @@ c04_鬼打墙_走向楼梯,不,我不想听它们的。,,,,,
c04_鬼打墙_再次开门,不会是...鬼打墙吧?,,,,, c04_鬼打墙_再次开门,不会是...鬼打墙吧?,,,,,
c04_鬼打墙_全部交互完,...,,,,, c04_鬼打墙_全部交互完,...,,,,,
c04_鬼打墙_捂眼,我记得...{br}捂眼静心,或许有用。,,,,, c04_鬼打墙_捂眼,我记得...{br}捂眼静心,或许有用。,,,,,
c04_除晦游戏_开始,好吵...不要吵了,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
381 c04_鬼打墙_再次开门 不会是...鬼打墙吧?
382 c04_鬼打墙_全部交互完 ...
383 c04_鬼打墙_捂眼 我记得...{br}捂眼静心,或许有用。
384 c04_除晦游戏_开始 好吵...不要吵了

View File

@ -479,6 +479,8 @@ skip[ID:prop_沾血的老虎钳_详情]
不会是...鬼打墙吧?[ID:c04_鬼打墙_再次开门] 不会是...鬼打墙吧?[ID:c04_鬼打墙_再次开门]
...[ID:c04_鬼打墙_全部交互完] ...[ID:c04_鬼打墙_全部交互完]
我记得...{br}捂眼静心,或许有用。[ID:c04_鬼打墙_捂眼] 我记得...{br}捂眼静心,或许有用。[ID:c04_鬼打墙_捂眼]
# 除晦游戏
好吵...不要吵了[ID:c04_除晦游戏_开始]
=> END => END
~ Notes_c05 ~ Notes_c05

View File

@ -1,4 +1,4 @@
[gd_resource type="SpriteFrames" load_steps=1071 format=3 uid="uid://b7fhheih1hbvf"] [gd_resource type="SpriteFrames" load_steps=1102 format=3 uid="uid://b7fhheih1hbvf"]
[ext_resource type="Texture2D" uid="uid://dvq64espa37lx" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx1.png" id="1_ekv0l"] [ext_resource type="Texture2D" uid="uid://dvq64espa37lx" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx1.png" id="1_ekv0l"]
[ext_resource type="Texture2D" uid="uid://dcp4gk5lib4bl" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx2.png" id="2_fq076"] [ext_resource type="Texture2D" uid="uid://dcp4gk5lib4bl" path="res://asset/art/animation/c00_吕萍_idle_left/zhhx2.png" id="2_fq076"]
@ -1052,24 +1052,55 @@
[ext_resource type="Texture2D" uid="uid://d11u3r8knuujh" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/胖子对半砍/6.png" id="1041_nis13"] [ext_resource type="Texture2D" uid="uid://d11u3r8knuujh" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/胖子对半砍/6.png" id="1041_nis13"]
[ext_resource type="Texture2D" uid="uid://df0k1vv0tnx75" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/胖子对半砍/7.png" id="1042_y1qej"] [ext_resource type="Texture2D" uid="uid://df0k1vv0tnx75" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/胖子对半砍/7.png" id="1042_y1qej"]
[ext_resource type="Texture2D" uid="uid://r7l0ou2nvmwt" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/胖子对半砍/8.png" id="1043_e3b0h"] [ext_resource type="Texture2D" uid="uid://r7l0ou2nvmwt" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第一段/胖子对半砍/8.png" id="1043_e3b0h"]
[ext_resource type="Texture2D" uid="uid://75q52y1am8w7" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼/0.png" id="1053_ims8x"]
[ext_resource type="Texture2D" uid="uid://dmr1greolytrq" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/0.png" id="1053_mhvgv"] [ext_resource type="Texture2D" uid="uid://dmr1greolytrq" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/0.png" id="1053_mhvgv"]
[ext_resource type="Texture2D" uid="uid://gy6scy5crhox" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/1.png" id="1054_3vhq4"] [ext_resource type="Texture2D" uid="uid://gy6scy5crhox" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/1.png" id="1054_3vhq4"]
[ext_resource type="Texture2D" uid="uid://dssx0cv6lcn4h" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼/1.png" id="1054_8syho"]
[ext_resource type="Texture2D" uid="uid://b7vdib1l4fvmv" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/2.png" id="1055_37ts7"] [ext_resource type="Texture2D" uid="uid://b7vdib1l4fvmv" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/2.png" id="1055_37ts7"]
[ext_resource type="Texture2D" uid="uid://dqy83v7otqi8q" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼/2.png" id="1055_xpdus"]
[ext_resource type="Texture2D" uid="uid://6p3a2xxh4vle" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/3.png" id="1056_q7q0i"] [ext_resource type="Texture2D" uid="uid://6p3a2xxh4vle" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/3.png" id="1056_q7q0i"]
[ext_resource type="Texture2D" uid="uid://dskammmgt6p1k" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼/3.png" id="1056_ubuty"]
[ext_resource type="Texture2D" uid="uid://dxcm3462m4my6" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/4.png" id="1057_la5wd"] [ext_resource type="Texture2D" uid="uid://dxcm3462m4my6" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/4.png" id="1057_la5wd"]
[ext_resource type="Texture2D" uid="uid://1jg11gdxqbyg" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼/4.png" id="1057_lpy23"]
[ext_resource type="Texture2D" uid="uid://b4htb08ofcct2" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼呼吸/0.png" id="1058_35cy1"]
[ext_resource type="Texture2D" uid="uid://b28j1kgnc0xro" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/5.png" id="1058_voge0"] [ext_resource type="Texture2D" uid="uid://b28j1kgnc0xro" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/5.png" id="1058_voge0"]
[ext_resource type="Texture2D" uid="uid://b4ef4dgnql7ru" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼呼吸/1.png" id="1059_313ip"]
[ext_resource type="Texture2D" uid="uid://dmnjnbsodlpon" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/6.png" id="1059_h8k05"] [ext_resource type="Texture2D" uid="uid://dmnjnbsodlpon" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/6.png" id="1059_h8k05"]
[ext_resource type="Texture2D" uid="uid://t6pqq5x6jafs" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/7.png" id="1060_2uu24"] [ext_resource type="Texture2D" uid="uid://t6pqq5x6jafs" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/7.png" id="1060_2uu24"]
[ext_resource type="Texture2D" uid="uid://bvbt0gywcl4ti" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼呼吸/2.png" id="1060_as7o6"]
[ext_resource type="Texture2D" uid="uid://gy1ugcpngt1p" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/8.png" id="1061_0ye5j"] [ext_resource type="Texture2D" uid="uid://gy1ugcpngt1p" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/8.png" id="1061_0ye5j"]
[ext_resource type="Texture2D" uid="uid://ttuewk1ghnmq" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼呼吸/3.png" id="1061_ycyb5"]
[ext_resource type="Texture2D" uid="uid://bamy0yy0eo42j" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼呼吸/4.png" id="1062_8dtli"]
[ext_resource type="Texture2D" uid="uid://4t48tqnox4vr" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/9.png" id="1062_xfi5l"] [ext_resource type="Texture2D" uid="uid://4t48tqnox4vr" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/9.png" id="1062_xfi5l"]
[ext_resource type="Texture2D" uid="uid://c3ha1p6fu6qkm" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼呼吸/5.png" id="1063_p46hf"]
[ext_resource type="Texture2D" uid="uid://d2j6ubjov164f" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/10.png" id="1063_r3y8n"] [ext_resource type="Texture2D" uid="uid://d2j6ubjov164f" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/10.png" id="1063_r3y8n"]
[ext_resource type="Texture2D" uid="uid://b81w5sfycq8l1" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼放下/0.png" id="1064_1eof2"]
[ext_resource type="Texture2D" uid="uid://dop55jxd1okb8" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/11.png" id="1064_b5n4m"] [ext_resource type="Texture2D" uid="uid://dop55jxd1okb8" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/11.png" id="1064_b5n4m"]
[ext_resource type="Texture2D" uid="uid://d3p62apuyj7l6" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/12.png" id="1065_b3sel"] [ext_resource type="Texture2D" uid="uid://d3p62apuyj7l6" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/12.png" id="1065_b3sel"]
[ext_resource type="Texture2D" uid="uid://cxjr2a0623tak" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼放下/1.png" id="1065_eehli"]
[ext_resource type="Texture2D" uid="uid://cprtrlpaatvcs" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼放下/2.png" id="1066_fdp6i"]
[ext_resource type="Texture2D" uid="uid://c7ryymjhjk2gv" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/13.png" id="1066_t25a7"] [ext_resource type="Texture2D" uid="uid://c7ryymjhjk2gv" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/13.png" id="1066_t25a7"]
[ext_resource type="Texture2D" uid="uid://bedaaviwo4rxv" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼放下/3.png" id="1067_j8iso"]
[ext_resource type="Texture2D" uid="uid://cywr0736ooibx" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/14.png" id="1067_wv12g"] [ext_resource type="Texture2D" uid="uid://cywr0736ooibx" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/14.png" id="1067_wv12g"]
[ext_resource type="Texture2D" uid="uid://dv4gc8w1p16gv" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/15.png" id="1068_ap1tk"] [ext_resource type="Texture2D" uid="uid://dv4gc8w1p16gv" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/15.png" id="1068_ap1tk"]
[ext_resource type="Texture2D" uid="uid://du5iwu6kklql4" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/0.png" id="1068_exh41"]
[ext_resource type="Texture2D" uid="uid://cv5s41fdlm0jd" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/1.png" id="1069_38qsh"]
[ext_resource type="Texture2D" uid="uid://rbsdh3wjiy4d" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/16.png" id="1069_sdjh1"] [ext_resource type="Texture2D" uid="uid://rbsdh3wjiy4d" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/16.png" id="1069_sdjh1"]
[ext_resource type="Texture2D" uid="uid://d3308o8u5bb16" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/17.png" id="1070_6o5lc"] [ext_resource type="Texture2D" uid="uid://d3308o8u5bb16" path="res://asset/art/gif/c04_木头人游戏/木头人_吕萍_死亡动作/17.png" id="1070_6o5lc"]
[ext_resource type="Texture2D" uid="uid://ctbxwos4m7201" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/2.png" id="1070_nohsw"]
[ext_resource type="Texture2D" uid="uid://b1udcj3h4nxst" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/3.png" id="1071_bbjp7"]
[ext_resource type="Texture2D" uid="uid://ccaa7nl4q5srm" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/4.png" id="1072_6krcv"]
[ext_resource type="Texture2D" uid="uid://qfa7708xb25y" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/5.png" id="1073_rdn4r"]
[ext_resource type="Texture2D" uid="uid://5inug2lf4dgn" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/6.png" id="1074_s307o"]
[ext_resource type="Texture2D" uid="uid://qbowwc5r7tpn" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/7.png" id="1075_a43i5"]
[ext_resource type="Texture2D" uid="uid://dcu7se5xi876v" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/8.png" id="1076_t0x06"]
[ext_resource type="Texture2D" uid="uid://betjp865ic4f2" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/9.png" id="1077_li64a"]
[ext_resource type="Texture2D" uid="uid://btvofoysylc4p" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/10.png" id="1078_87fjk"]
[ext_resource type="Texture2D" uid="uid://tsc8u8kvlset" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/11.png" id="1079_ivc6x"]
[ext_resource type="Texture2D" uid="uid://cduktq0r8noq7" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/12.png" id="1080_wnl82"]
[ext_resource type="Texture2D" uid="uid://dw33aqiha46v0" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/13.png" id="1081_tnls8"]
[ext_resource type="Texture2D" uid="uid://wbnp0dmrndnx" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/14.png" id="1082_oi5yg"]
[ext_resource type="Texture2D" uid="uid://cfu2v88etq5dj" path="res://asset/art/gif/c04_鬼打墙/吕萍-捂眼走/15.png" id="1083_ev0x7"]
[resource] [resource]
animations = [{ animations = [{
@ -4959,6 +4990,119 @@ animations = [{
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0,
"texture": ExtResource("1053_ims8x")
}, {
"duration": 1.0,
"texture": ExtResource("1054_8syho")
}, {
"duration": 1.0,
"texture": ExtResource("1055_xpdus")
}, {
"duration": 1.0,
"texture": ExtResource("1056_ubuty")
}, {
"duration": 1.0,
"texture": ExtResource("1057_lpy23")
}],
"loop": false,
"name": &"c04_吕萍_捂眼",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1058_35cy1")
}, {
"duration": 1.0,
"texture": ExtResource("1059_313ip")
}, {
"duration": 1.0,
"texture": ExtResource("1060_as7o6")
}, {
"duration": 1.0,
"texture": ExtResource("1061_ycyb5")
}, {
"duration": 1.0,
"texture": ExtResource("1062_8dtli")
}, {
"duration": 1.0,
"texture": ExtResource("1063_p46hf")
}],
"loop": false,
"name": &"c04_吕萍_捂眼呼吸",
"speed": 1.5
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1064_1eof2")
}, {
"duration": 1.0,
"texture": ExtResource("1065_eehli")
}, {
"duration": 1.0,
"texture": ExtResource("1066_fdp6i")
}, {
"duration": 1.0,
"texture": ExtResource("1067_j8iso")
}],
"loop": false,
"name": &"c04_吕萍_捂眼放下",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1068_exh41")
}, {
"duration": 1.0,
"texture": ExtResource("1069_38qsh")
}, {
"duration": 1.0,
"texture": ExtResource("1070_nohsw")
}, {
"duration": 1.0,
"texture": ExtResource("1071_bbjp7")
}, {
"duration": 1.0,
"texture": ExtResource("1072_6krcv")
}, {
"duration": 1.0,
"texture": ExtResource("1073_rdn4r")
}, {
"duration": 1.0,
"texture": ExtResource("1074_s307o")
}, {
"duration": 1.0,
"texture": ExtResource("1075_a43i5")
}, {
"duration": 1.0,
"texture": ExtResource("1076_t0x06")
}, {
"duration": 1.0,
"texture": ExtResource("1077_li64a")
}, {
"duration": 1.0,
"texture": ExtResource("1078_87fjk")
}, {
"duration": 1.0,
"texture": ExtResource("1079_ivc6x")
}, {
"duration": 1.0,
"texture": ExtResource("1080_wnl82")
}, {
"duration": 1.0,
"texture": ExtResource("1081_tnls8")
}, {
"duration": 1.0,
"texture": ExtResource("1082_oi5yg")
}, {
"duration": 1.0,
"texture": ExtResource("1083_ev0x7")
}],
"loop": true,
"name": &"c04_吕萍_捂眼走",
"speed": 6.0
}, {
"frames": [{
"duration": 2.0, "duration": 2.0,
"texture": ExtResource("1053_mhvgv") "texture": ExtResource("1053_mhvgv")
}, { }, {

View File

@ -7,7 +7,7 @@ const DEBUG_CHARACTER_PREFIX = "[debug]"
# 影响事件的 release_stage # 影响事件的 release_stage
# 0:demo # 0:demo
# 1:v1.0正式版 # 1:v1.0正式版
const RELEASE_STAGE := 0 const RELEASE_STAGE := 1
static func is_demo() -> bool: static func is_demo() -> bool:
return RELEASE_STAGE == 0 return RELEASE_STAGE == 0

View File

@ -23,7 +23,7 @@ signal animation_finished
@export var lock_move_right := false @export var lock_move_right := false
@export var reenter_lock: PlayerReenterLock @export var reenter_lock: PlayerReenterLock
@export var camera_marker: CameraFocusMarker @export var camera_marker: CameraFocusMarker
@export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "吕萍拉大柜子", "小小蝶", "盒子猫", "胖子游戏", "小小小蝶") var character := "吕萍": @export_enum("吕萍", "吕萍爬行", "吕萍带小猫", "吕萍推柜子", "吕萍拉大柜子", "小小蝶", "盒子猫", "胖子游戏", "吕萍捂脸", "小小小蝶") var character := "吕萍":
set(val): set(val):
character = val character = val
if is_node_ready(): if is_node_ready():

View File

@ -56,7 +56,12 @@ var ANIMATION_CONFIG = {
20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""], 20: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠呼吸", &""],
21: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身_屠宰间", &""], 21: [&"", Vector2.ONE, Vector2(2.5, -48.0), &"c02_吕萍_背靠起身_屠宰间", &""],
22: [&"", Vector2.ONE, Vector2(341.0, -75.0), &"", &"c02_吕萍_风吹过"], 22: [&"", Vector2.ONE, Vector2(341.0, -75.0), &"", &"c02_吕萍_风吹过"],
# 第三章
23: [&"c04_吕萍_木头人死亡", Vector2.ONE, Vector2(0, -63.5)], 23: [&"c04_吕萍_木头人死亡", Vector2.ONE, Vector2(0, -63.5)],
24: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼"],
25: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼呼吸"],
26: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼放下"],
27: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼走"],
}, },
"吕萍爬行": "吕萍爬行":
{ {
@ -207,12 +212,34 @@ var ANIMATION_CONFIG = {
# 此处为[2][3]分别为 sprite 向左、向右时的 offset # 此处为[2][3]分别为 sprite 向左、向右时的 offset
MOVEMENT_WALKING: [&"", &"c03_胖子游戏_瘦子走"], MOVEMENT_WALKING: [&"", &"c03_胖子游戏_瘦子走"],
MOVEMENT_RUNNING: [&"", &"c03_胖子游戏_瘦子跑"], MOVEMENT_RUNNING: [&"", &"c03_胖子游戏_瘦子跑"],
5: [&"c03_胖子游戏_掉下来", Vector2.ONE, Vector2(0, -108.0)], 5: [&"c03_胖子游戏_掉下来", Vector2.ONE, Vector2(0, -108.0)],
6: [&"c03_胖子游戏_洞里爬出来", Vector2.ONE, Vector2(-70, -44.5)], 6: [&"c03_胖子游戏_洞里爬出来", Vector2.ONE, Vector2(-70, -44.5)],
7: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_胖子对半砍"], 7: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_胖子对半砍"],
8: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_吃东西"], 8: [&"", Vector2.ONE, Vector2(0, -51.0), &"", &"c03_胖子游戏_吃东西"],
9: [&"", Vector2.ONE, Vector2(0, -108.0), &"", &"c03_胖子游戏_爬起来"], 9: [&"", Vector2.ONE, Vector2(0, -108.0), &"", &"c03_胖子游戏_爬起来"],
}, },
"吕萍捂脸":
{
"scale": Vector2.ONE,
"speed_walking": 60.0,
"can_run": false,
"speed_runnig": 110.0,
"walk_footstep": 0.5,
"run_footstep": 7.0 / 10.0 / 2.0,
# 内心 os 时dialogue 的高度
"os_height": 120.0,
"light_height": 60.0,
# 人物脚底 offset吕萍为 0高 200px足底在 100px 处
"foot_offset": Vector2(0, -50),
MOVEMENT_IDLE: [&"", &"c04_吕萍_捂眼呼吸"],
MOVEMENT_WALKING: [&"", &"c04_吕萍_捂眼走"],
MOVEMENT_RUNNING: [&"", &"c04_吕萍_捂眼走"],
# 第三章
24: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼"],
25: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼呼吸"],
26: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼放下"],
27: [&"", Vector2.ONE, Vector2(0, -50.0), &"", &"c04_吕萍_捂眼走"],
},
"小小小蝶": "小小小蝶":
{ {
"scale": Vector2(1, 1), "scale": Vector2(1, 1),

View File

@ -55,6 +55,7 @@ const GROUND_SCENE_PATH_DICT: Dictionary[String, Dictionary] = {
"c04_s06": {"path": "uid://dgcxqcu5k6tvt", "name": "小蝶房间"}, "c04_s06": {"path": "uid://dgcxqcu5k6tvt", "name": "小蝶房间"},
"c04_s07": {"path": "uid://b6cfu5rs88pql", "name": "佛堂"}, "c04_s07": {"path": "uid://b6cfu5rs88pql", "name": "佛堂"},
"c04_s08": {"path": "uid://dcg8ekvhqxjjs", "name": "三楼III"}, "c04_s08": {"path": "uid://dcg8ekvhqxjjs", "name": "三楼III"},
"c04_s09": {"path": "uid://cchuw5rw6cf0l", "name": "除晦游戏"},
} }
# 注意: 共享 ground archive # 注意: 共享 ground archive

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://drjnu33pga6i5"] [gd_scene load_steps=14 format=3 uid="uid://drjnu33pga6i5"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_36j8f"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_36j8f"]
[ext_resource type="Script" uid="uid://bkbngux0ije3l" path="res://scene/ground/scene/c04/s01_父母房间.gd" id="2_1k73c"] [ext_resource type="Script" uid="uid://bkbngux0ije3l" path="res://scene/ground/scene/c04/s01_父母房间.gd" id="2_1k73c"]
@ -7,6 +7,7 @@
[ext_resource type="Texture2D" uid="uid://byxt5camx1sbh" path="res://asset/art/scene/c04/s01_父母房间/小蝶父母房间.png" id="5_7m886"] [ext_resource type="Texture2D" uid="uid://byxt5camx1sbh" path="res://asset/art/scene/c04/s01_父母房间/小蝶父母房间.png" id="5_7m886"]
[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="5_173ya"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="5_173ya"]
[ext_resource type="PackedScene" uid="uid://8chvwh72yan1" path="res://scene/ground/script/c03/s09_closeup九宫格游戏.tscn" id="6_1k73c"] [ext_resource type="PackedScene" uid="uid://8chvwh72yan1" path="res://scene/ground/script/c03/s09_closeup九宫格游戏.tscn" id="6_1k73c"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_c3ujy"]
[ext_resource type="Texture2D" uid="uid://72r8mpv4dym1" path="res://asset/art/scene/c04/s01_父母房间/藤曼.png" id="6_rfsfd"] [ext_resource type="Texture2D" uid="uid://72r8mpv4dym1" path="res://asset/art/scene/c04/s01_父母房间/藤曼.png" id="6_rfsfd"]
[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="7_rfsfd"] [ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="7_rfsfd"]
[ext_resource type="Texture2D" uid="uid://c22pwj4e7hxo5" path="res://asset/art/scene/c04/s01_父母房间/前景.png" id="9_lkeaf"] [ext_resource type="Texture2D" uid="uid://c22pwj4e7hxo5" path="res://asset/art/scene/c04/s01_父母房间/前景.png" id="9_lkeaf"]
@ -55,7 +56,13 @@ target_scene = "c04_s06"
target_portal = "left" target_portal = "left"
status = "opened" status = "opened"
[node name="藤蔓" type="Sprite2D" parent="Ground/DeployLayer" index="2"] [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_c3ujy")]
position = Vector2(258, 37)
debug_note = "除晦游戏结束后传送点"
enabled = false
portal_name = "1"
[node name="藤蔓" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
position = Vector2(319, -27) position = Vector2(319, -27)
texture = ExtResource("6_rfsfd") texture = ExtResource("6_rfsfd")
@ -67,11 +74,11 @@ updater_ease_duration = 0.0
updater_stages = Array[int]([0, 1]) updater_stages = Array[int]([0, 1])
metadata/_custom_type_script = "uid://0wjaho6qkg6s" metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="Closeup九宫格游戏" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_173ya")] [node name="Closeup九宫格游戏" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_173ya")]
position = Vector2(178, 30) position = Vector2(178, 30)
packed_scene = ExtResource("6_1k73c") packed_scene = ExtResource("6_1k73c")
[node name="Closeup桌面" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_173ya")] [node name="Closeup桌面" parent="Ground/DeployLayer" index="5" instance=ExtResource("5_173ya")]
position = Vector2(306, 34) position = Vector2(306, 34)
packed_scene = ExtResource("10_lkeaf") packed_scene = ExtResource("10_lkeaf")

View File

@ -130,6 +130,7 @@ func _game_success() -> void:
await Util.wait(1.0) await Util.wait(1.0)
var animation_player = $"鬼打墙黑手Effect/AnimationPlayer" var animation_player = $"鬼打墙黑手Effect/AnimationPlayer"
animation_player.play("双手捂屏幕") animation_player.play("双手捂屏幕")
_action_hide_face()
# 重置镜头与玩家活动范围 # 重置镜头与玩家活动范围
SceneManager.get_player().player_movement_rect = player_rect SceneManager.get_player().player_movement_rect = player_rect
var camera = SceneManager.get_camera_marker() var camera = SceneManager.get_camera_marker()
@ -143,6 +144,7 @@ func _game_success() -> void:
_hide_trap_layer() _hide_trap_layer()
await Util.wait(1.5) await Util.wait(1.5)
animation_player.play("双手离开屏幕") animation_player.play("双手离开屏幕")
SceneManager.get_player().player_action(26, false)
camera.speed = 2.0 camera.speed = 2.0
tween = create_tween() tween = create_tween()
tween.tween_property(camera, "limit_right", camera_rect.size.x, 2.0) tween.tween_property(camera, "limit_right", camera_rect.size.x, 2.0)
@ -150,6 +152,10 @@ func _game_success() -> void:
await Util.wait(1.0) await Util.wait(1.0)
SceneManager.unlock_player() SceneManager.unlock_player()
func _action_hide_face() -> void:
await SceneManager.get_player().player_action(24, false)
SceneManager.get_player().player_action(25, false)
func _hide_trap_layer() -> void: func _hide_trap_layer() -> void:
var l = $"../鬼打墙Layer" var l = $"../鬼打墙Layer"

View File

@ -288,7 +288,7 @@ updater_stages = Array[int]([0])
metadata/_custom_type_script = "uid://0wjaho6qkg6s" metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer" index="11"] [node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer" index="11"]
position = Vector2(413.6, 10.4) position = Vector2(464.6, 9.4)
scale = Vector2(0.8, 0.8) scale = Vector2(0.8, 0.8)
texture = ExtResource("21_llqg1") texture = ExtResource("21_llqg1")
@ -301,7 +301,7 @@ updater_stages = Array[int]([3])
metadata/_custom_type_script = "uid://0wjaho6qkg6s" metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="排队纸人_歪头" type="Sprite2D" parent="Ground/DeployLayer" index="12"] [node name="排队纸人_歪头" type="Sprite2D" parent="Ground/DeployLayer" index="12"]
position = Vector2(413.6, 10.4) position = Vector2(464.6, 9.4)
scale = Vector2(0.8, 0.8) scale = Vector2(0.8, 0.8)
texture = ExtResource("22_qnwug") texture = ExtResource("22_qnwug")
@ -484,14 +484,17 @@ centered = false
offset = Vector2(0, -100) offset = Vector2(0, -100)
[node name="砖墙1" type="Sprite2D" parent="Ground/鬼打墙Layer"] [node name="砖墙1" type="Sprite2D" parent="Ground/鬼打墙Layer"]
visible = false
position = Vector2(282, -7) position = Vector2(282, -7)
texture = ExtResource("32_44hgy") texture = ExtResource("32_44hgy")
[node name="砖墙2" type="Sprite2D" parent="Ground/鬼打墙Layer"] [node name="砖墙2" type="Sprite2D" parent="Ground/鬼打墙Layer"]
visible = false
position = Vector2(368, -8) position = Vector2(368, -8)
texture = ExtResource("32_44hgy") texture = ExtResource("32_44hgy")
[node name="砖墙3" type="Sprite2D" parent="Ground/鬼打墙Layer"] [node name="砖墙3" type="Sprite2D" parent="Ground/鬼打墙Layer"]
visible = false
position = Vector2(451, -8) position = Vector2(451, -8)
texture = ExtResource("32_44hgy") texture = ExtResource("32_44hgy")

View File

@ -14,6 +14,7 @@ func _ready() -> void:
#region node_reference #region node_reference
var inversed_color_sprite: Sprite2D
#endregion #endregion
@ -24,6 +25,83 @@ func _setup_node_reference() -> void:
var texture_painting_after_tear = preload("uid://deoi4dv42vspn") var texture_painting_after_tear = preload("uid://deoi4dv42vspn")
var bg_texture_width: float
var player: MainPlayer
func _on_ground_ready() -> void: func _on_ground_ready() -> void:
pass bg_texture_width = $"../BGSprite2D".texture.get_size().x
inversed_color_sprite = $"../DeployLayer/反色空间"
player = SceneManager.get_player()
# 锁定玩家位置
player.global_position.x = $"../DeployLayer/portal_1".global_position.x
player.set_facing_direction(Vector2.RIGHT)
# 锁定玩家
SceneManager.lock_player()
Util.timer(2.0, _game_intro)
func _game_intro() -> void:
# 手捂脸
_action_hide_face()
_toggle_inversed_effect(true)
await Util.wait(2.0)
# 开始游戏
var root1 = $"../DeployLayer/文字Root1"
root1.start_disperse_game()
root1.game_success.connect(_stage_1_success, CONNECT_ONE_SHOT)
await Util.wait(2.0)
# 显示提示文字
var label = $"../DeployLayer/屏中文字/提示文字"
$"Sfx红字音效".play()
var tween = create_tween()
tween.tween_property(label, "modulate:a", 1.0, 1.0)
tween.tween_interval(3.0)
tween.tween_property(label, "modulate:a", 0.0, 1.0)
func _action_hide_face() -> void:
SceneManager.get_player().character = "吕萍捂脸"
SceneManager.get_player().player_action(24, true)
# 更新反色空间位置
func _physics_process(_delta: float) -> void:
if not player or Engine.is_editor_hint():
return
var ratio = player.global_position.x / bg_texture_width
inversed_color_sprite.material.set("shader_parameter/offset_ratio", ratio)
func _toggle_inversed_effect(show: bool, duration := 2.0) -> void:
if show:
create_tween().tween_property(
inversed_color_sprite.material, "shader_parameter/modulate_a", 1.0, duration
)
else:
create_tween().tween_property(
inversed_color_sprite.material, "shader_parameter/modulate_a", 0.0, duration
)
func _stage_1_success() -> void:
await Util.wait(1.0)
# 向右走
var target_x = $"../DeployLayer/portal_2".global_position.x
await SceneManager.get_player().walk_to_x(target_x).finished
await Util.wait(1.0)
_action_hide_face()
# 开始第二阶段游戏
var root2 = $"../DeployLayer/文字Root2"
root2.start_disperse_game()
root2.game_success.connect(_stage_2_success, CONNECT_ONE_SHOT)
func _stage_2_success() -> void:
# 手放下
SceneManager.get_player().character = "吕萍"
SceneManager.get_player().player_action(26, true)
_toggle_inversed_effect(false)
await Util.wait(2.0)
# 传送到父母房间
SceneManager.get_ground_loader().transition_to_scene("c04_s01", "1")

View File

@ -1,25 +1,42 @@
[gd_scene load_steps=14 format=3 uid="uid://cchuw5rw6cf0l"] [gd_scene load_steps=23 format=3 uid="uid://cchuw5rw6cf0l"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_juj5v"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_juj5v"]
[ext_resource type="Script" uid="uid://b06m3d5mehyin" path="res://scene/ground/scene/c04/s09_除晦游戏.gd" id="2_juj5v"] [ext_resource type="Script" uid="uid://b06m3d5mehyin" path="res://scene/ground/scene/c04/s09_除晦游戏.gd" id="2_juj5v"]
[ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="3_om2jl"] [ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="3_om2jl"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_n4q25"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_n4q25"]
[ext_resource type="AudioStream" uid="uid://ko5kibky8hcw" path="res://asset/audio/sfx/交互/第一章/红字特效音.ogg" id="5_3a5uu"]
[ext_resource type="Texture2D" uid="uid://dsymfb45n1sx1" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间.png" id="5_iqexw"] [ext_resource type="Texture2D" uid="uid://dsymfb45n1sx1" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间.png" id="5_iqexw"]
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="6_7knml"]
[ext_resource type="Texture2D" uid="uid://bhygivahwd1yb" path="res://asset/art/scene/c04/s05_客厅/藤曼.png" id="6_qppbt"] [ext_resource type="Texture2D" uid="uid://bhygivahwd1yb" path="res://asset/art/scene/c04/s05_客厅/藤曼.png" id="6_qppbt"]
[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="7_3a5uu"] [ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="7_3a5uu"]
[ext_resource type="Texture2D" uid="uid://cgjca5flabtkt" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_关着的门.png" id="8_cmpvw"] [ext_resource type="Texture2D" uid="uid://cgjca5flabtkt" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_关着的门.png" id="8_cmpvw"]
[ext_resource type="Texture2D" uid="uid://0l2c7c3qgxs0" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_上层墙.png" id="8_ob3l3"] [ext_resource type="Texture2D" uid="uid://0l2c7c3qgxs0" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_上层墙.png" id="8_ob3l3"]
[ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="8_qppbt"]
[ext_resource type="Texture2D" uid="uid://86yqa60yum4f" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_打开的门.png" id="9_prdnl"] [ext_resource type="Texture2D" uid="uid://86yqa60yum4f" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_打开的门.png" id="9_prdnl"]
[ext_resource type="Texture2D" uid="uid://cgax11gclu80s" path="res://asset/art/scene/c04/s00_除晦游戏/ux_除晦手.png" id="11_7jpfo"]
[ext_resource type="Texture2D" uid="uid://xnqlxofyldx5" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_反色.png" id="11_prdnl"] [ext_resource type="Texture2D" uid="uid://xnqlxofyldx5" path="res://asset/art/scene/c04/s00_除晦游戏/客厅连着父母房间_反色.png" id="11_prdnl"]
[ext_resource type="Shader" uid="uid://c4ioalmumivey" path="res://scene/ground/script/c04/s09_除晦游戏反色效果.gdshader" id="12_juj5v"]
[ext_resource type="Texture2D" uid="uid://cpgt884ml6a7d" path="res://asset/art/scene/c04/s05_客厅/前景.png" id="14_0i4ir"] [ext_resource type="Texture2D" uid="uid://cpgt884ml6a7d" path="res://asset/art/scene/c04/s05_客厅/前景.png" id="14_0i4ir"]
[ext_resource type="Script" uid="uid://bvkqk6qf83nux" path="res://scene/ground/script/c04/除晦游戏label.gd" id="14_ef5eh"]
[ext_resource type="Script" uid="uid://bm1luy5kk6sbv" path="res://scene/ground/script/c04/除晦游戏文字root.gd" id="14_n4q25"]
[ext_resource type="FontFile" uid="uid://bnxdsxp7dst7f" path="res://asset/font/锐字太空混元像素简繁-闪 超黑_mianfeiziti.com.ttf" id="14_om2jl"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ef5eh"]
shader = ExtResource("12_juj5v")
shader_parameter/mask_texture = ExtResource("11_7jpfo")
shader_parameter/modulate_a = 0.0
shader_parameter/half_width_ratio = 0.218
shader_parameter/offset_ratio = 0.063
shader_parameter/alpha_threshold = 0.5
[node name="S09" type="Node2D"] [node name="S09" type="Node2D"]
metadata/_edit_horizontal_guides_ = [-627.0] metadata/_edit_horizontal_guides_ = [-627.0]
[node name="Ground" parent="." instance=ExtResource("1_juj5v")] [node name="Ground" parent="." instance=ExtResource("1_juj5v")]
scene_name = "c04_s09" scene_name = "c04_s09"
default_portal = "1"
player_y = 60 player_y = 60
[node name="AnimationPlayer" parent="Ground" index="0"] [node name="AnimationPlayer" parent="Ground" index="0"]
@ -39,24 +56,39 @@ mode = "场景背景音"
"感应玩家操作" = false "感应玩家操作" = false
metadata/_custom_type_script = "uid://rq6w1vuhuq1m" metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="Sfx红字音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
stream = ExtResource("5_3a5uu")
volume_db = -10.0
bus = &"game_sfx"
script = ExtResource("4_n4q25")
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
[node name="BGSprite2D" parent="Ground" index="2"] [node name="BGSprite2D" parent="Ground" index="2"]
light_mask = 5 light_mask = 5
texture = ExtResource("5_iqexw") texture = ExtResource("5_iqexw")
offset = Vector2(0, -158) offset = Vector2(0, -158)
[node name="portal_left" parent="Ground/DeployLayer" index="0"] [node name="portal_left" parent="Ground/DeployLayer" index="0"]
position = Vector2(70, 29) position = Vector2(72, 24)
target_scene = "c04_s08" enabled = false
target_portal = "1"
status = "opened"
[node name="portal_right" parent="Ground/DeployLayer" index="1"] [node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(538, 31) position = Vector2(1185, 25)
target_scene = "c04_s01" enabled = false
target_portal = "left"
status = "opened"
[node name="藤蔓" type="Sprite2D" parent="Ground/DeployLayer" index="2"] [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("6_7knml")]
position = Vector2(289, 25)
debug_note = "传送点"
enabled = false
portal_name = "1"
[node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("6_7knml")]
position = Vector2(852, 39)
debug_note = "右侧点"
enabled = false
portal_name = "2"
[node name="藤蔓" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
position = Vector2(294, -17) position = Vector2(294, -17)
texture = ExtResource("6_qppbt") texture = ExtResource("6_qppbt")
@ -68,28 +100,297 @@ updater_ease_duration = 0.0
updater_stages = Array[int]([0, 1]) updater_stages = Array[int]([0, 1])
metadata/_custom_type_script = "uid://0wjaho6qkg6s" metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="关着的门" type="Sprite2D" parent="Ground/DeployLayer" index="3"] [node name="关着的门" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
texture = ExtResource("8_cmpvw") texture = ExtResource("8_cmpvw")
centered = false centered = false
offset = Vector2(0, -158) offset = Vector2(0, -158)
[node name="打开的门" type="Sprite2D" parent="Ground/DeployLayer" index="4"] [node name="打开的门" type="Sprite2D" parent="Ground/DeployLayer" index="6"]
visible = false visible = false
texture = ExtResource("9_prdnl") texture = ExtResource("9_prdnl")
centered = false centered = false
offset = Vector2(0, -158) offset = Vector2(0, -158)
[node name="隔断墙" type="Sprite2D" parent="Ground/DeployLayer" index="5"] [node name="隔断墙" type="Sprite2D" parent="Ground/DeployLayer" index="7"]
z_index = 6 z_index = 6
position = Vector2(607.5, 0) position = Vector2(607.5, 0)
texture = ExtResource("8_ob3l3") texture = ExtResource("8_ob3l3")
[node name="反色空间" type="Sprite2D" parent="Ground/DeployLayer" index="6"] [node name="反色空间" type="Sprite2D" parent="Ground/DeployLayer" index="8"]
z_index = 6 z_index = 6
material = SubResource("ShaderMaterial_ef5eh")
texture = ExtResource("11_prdnl") texture = ExtResource("11_prdnl")
centered = false centered = false
offset = Vector2(0, -158) offset = Vector2(0, -158)
[node name="屏中文字" type="Node2D" parent="Ground/DeployLayer" index="9"]
z_index = 6
position = Vector2(282, -20)
[node name="提示文字" type="RichTextLabel" parent="Ground/DeployLayer/屏中文字"]
modulate = Color(1, 1, 1, 0)
light_mask = 16
custom_minimum_size = Vector2(300, 0)
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -50.0
offset_right = 50.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 32
bbcode_enabled = true
text = "[wave amp=10.0 freq=3.0][/wave]"
fit_content = true
horizontal_alignment = 1
meta_underlined = false
hint_underlined = false
script = ExtResource("8_qppbt")
translation_key = "c04_除晦游戏_开始"
prefix = "[wave amp=10.0 freq=3.0]"
suffix = "[/wave]"
[node name="文字Root1" type="Node2D" parent="Ground/DeployLayer" index="10"]
z_index = 6
script = ExtResource("14_n4q25")
[node name="2" type="RichTextLabel" parent="Ground/DeployLayer/文字Root1"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 387.0
offset_top = -3.0
offset_right = 537.0
offset_bottom = 29.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=2][wave amp=8.0 freq=2.0]一家人都是骗子[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "2"
[node name="1" type="RichTextLabel" parent="Ground/DeployLayer/文字Root1"]
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 392.0
offset_top = -41.0
offset_right = 542.0
offset_bottom = -25.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="3" type="RichTextLabel" parent="Ground/DeployLayer/文字Root1"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 74.0
offset_top = -52.0
offset_right = 174.0
offset_bottom = -20.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=2][wave amp=8.0 freq=2.0]一家人都是骗子[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "2"
[node name="4" type="RichTextLabel" parent="Ground/DeployLayer/文字Root1"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 84.0
offset_top = -2.0
offset_right = 184.0
offset_bottom = 30.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=2][wave amp=8.0 freq=2.0]一家人都是骗子[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "2"
[node name="6" type="RichTextLabel" parent="Ground/DeployLayer/文字Root1"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 398.0
offset_top = 56.0
offset_right = 548.0
offset_bottom = 88.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=2][wave amp=8.0 freq=2.0]一家人都是骗子[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "2"
[node name="5" type="RichTextLabel" parent="Ground/DeployLayer/文字Root1"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 60.0
offset_top = 64.0
offset_right = 210.0
offset_bottom = 96.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=2][wave amp=8.0 freq=2.0]一家人都是骗子[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "2"
[node name="文字Root2" type="Node2D" parent="Ground/DeployLayer" index="11"]
z_index = 6
script = ExtResource("14_n4q25")
id_range = Vector2i(15, 34)
[node name="1" type="RichTextLabel" parent="Ground/DeployLayer/文字Root2"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 627.0
offset_top = 64.0
offset_right = 777.0
offset_bottom = 80.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="2" type="RichTextLabel" parent="Ground/DeployLayer/文字Root2"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 642.0
offset_top = 5.0
offset_right = 792.0
offset_bottom = 21.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="3" type="RichTextLabel" parent="Ground/DeployLayer/文字Root2"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 899.0
offset_top = -69.0
offset_right = 1049.0
offset_bottom = -53.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="4" type="RichTextLabel" parent="Ground/DeployLayer/文字Root2"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 959.0
offset_top = -8.0
offset_right = 1109.0
offset_bottom = 8.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="6" type="RichTextLabel" parent="Ground/DeployLayer/文字Root2"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 625.0
offset_top = -54.0
offset_right = 775.0
offset_bottom = -38.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="5" type="RichTextLabel" parent="Ground/DeployLayer/文字Root2"]
self_modulate = Color(0.745098, 0.745098, 0.745098, 1)
light_mask = 16
custom_minimum_size = Vector2(150, 0)
offset_left = 959.0
offset_top = 56.0
offset_right = 1109.0
offset_bottom = 72.0
theme_override_colors/default_color = Color(1, 0, 0, 1)
theme_override_fonts/normal_font = ExtResource("14_om2jl")
theme_override_font_sizes/normal_font_size = 15
bbcode_enabled = true
text = "[url=1][wave amp=8.0 freq=2.0]假神医?[/wave][/url]"
fit_content = true
meta_underlined = false
hint_underlined = false
script = ExtResource("14_ef5eh")
id = "1"
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95) position = Vector2(63, 95)
catty_light_energy = 0.5 catty_light_energy = 0.5
@ -102,10 +403,9 @@ texture = ExtResource("14_0i4ir")
offset = Vector2(0, 50) offset = Vector2(0, 50)
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(20, 150, 533, 151) points = PackedVector2Array(20, 150, 1190, 151)
[node name="DirectionalLight2D" parent="Ground" index="8"] [node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false
energy = 0.8 energy = 0.8
blend_mode = 1 blend_mode = 1

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=6 format=3 uid="uid://dhrc5sc21rwc"] [gd_scene load_steps=7 format=3 uid="uid://dhrc5sc21rwc"]
[ext_resource type="Script" uid="uid://cvsj8mktuf8wn" path="res://scene/ground/script/c04/s06_closeup日历.gd" id="1_e3s2p"] [ext_resource type="Script" uid="uid://cvsj8mktuf8wn" path="res://scene/ground/script/c04/s06_closeup日历.gd" id="1_e3s2p"]
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_6av83"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_6av83"]
[ext_resource type="Texture2D" uid="uid://bhd6bhcvhe33g" path="res://asset/art/scene/c04/s06_小蝶房间/日记游戏/日历特写/日历01-3月1日.png" id="2_e3s2p"]
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_e35wp"] [ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_e35wp"]
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_0yds4"] [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_0yds4"]
[ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="6_p5dpr"] [ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="6_p5dpr"]
@ -15,6 +16,7 @@ anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
texture = ExtResource("2_e3s2p")
[node name="遮罩" type="TextureRect" parent="."] [node name="遮罩" type="TextureRect" parent="."]
anchors_preset = 15 anchors_preset = 15
@ -26,6 +28,7 @@ mouse_filter = 2
texture = ExtResource("2_6av83") texture = ExtResource("2_6av83")
[node name="ContentInspector" parent="." instance=ExtResource("3_e35wp")] [node name="ContentInspector" parent="." instance=ExtResource("3_e35wp")]
visible = false
[node name="遮罩" type="TextureRect" parent="ContentInspector"] [node name="遮罩" type="TextureRect" parent="ContentInspector"]
layout_mode = 1 layout_mode = 1

View File

@ -0,0 +1,62 @@
shader_type canvas_item;
// sprite_texture 即为 Sprite2D 自身的纹理内置TEXTURE
// 外部参数mask_texture与 sprite_texture 高度相同,宽度 = width_ratio * sprite_width
// width_ratio < 1 为常量(运行时不变)
// offset_ratio 会在物理帧中不断更新,控制 mask 在 sprite 上的水平起点0 表示最左端1 - width_ratio 表示最右端)
uniform sampler2D mask_texture;
uniform float modulate_a : hint_range(0.0, 1.0) = 1.0; // mask_texture.width / sprite_texture.width
uniform float half_width_ratio : hint_range(0.1, 1.0) = 0.5; // mask_texture.width / sprite_texture.width
uniform float offset_ratio : hint_range(0.01, 1.0) = 0.01; // mask 左边界起点在 sprite UV0~1中的比例
// 当 mask 的 alpha > 0.5(或你需要的阈值)时显示 sprite对应区域 alpha = 原纹理 alpha否则 alpha = 0。
uniform float alpha_threshold : hint_range(0.0, 1.0) = 0.5;
void fragment() {
// 基础 sprite 采样
vec4 sprite_col = texture(TEXTURE, UV);
// 将 sprite 的 UV0~1映射到 mask 的 UV
// mask 横向只覆盖 [offset_ratio, offset_ratio + width_ratio] 的区间
// 在该区间内,线性映射到 mask 的 [0, 1] 横向。区间之外,直接视为 mask alpha = 0。
float u = UV.x;
float v = UV.y;
// 判断是否在 mask 的横向覆盖范围内
float left = offset_ratio - half_width_ratio;
float right = offset_ratio + half_width_ratio;
// 缩放到 mask 的 U 坐标0~1
float mask_u = 0.5 * (u - left) / half_width_ratio;
float mask_v = v; // 高度一致,直接使用同一 v 坐标0~1
// 默认 mask alpha = 0
float mask_a = 0.0;
// 仅在覆盖范围内采样 mask 纹理
if (u >= left && u <= right) {
vec4 mask_col = texture(mask_texture, vec2(mask_u, mask_v));
mask_a = mask_col.a;
}
// 应用阈值或直接乘 alpha两种方式任选其一
// 方式 A阈值裁剪更硬边
float visible = step(alpha_threshold, mask_a);
// visible && white
float col_rgb = step(alpha_threshold, visible * COLOR.a);
// 输出:颜色保持原纹理(也可以乘 mask_a 做软边alpha 由 visible 控制
// 如果你想要软边,替换为 sprite_col.a *= mask_a;
vec4 out_col = sprite_col;
out_col.rgb = vec3(col_rgb);
// 纯黑手掌
out_col.a = visible * modulate_a;
// 半透明的手掌
//out_col.a = visible * modulate_a * max(col_rgb, 0.2);
// 可选:也让 RGB 乘以 visible避免半透明像素渗色
//out_col.rgb *= visible;
COLOR = out_col;
}

View File

@ -0,0 +1 @@
uid://c4ioalmumivey

View File

@ -0,0 +1,45 @@
@tool
extends RichTextLabel
@export var id := 1:
set(val):
id = val
if is_node_ready():
refresh()
@warning_ignore("unused_private_class_variable")
@export_tool_button("刷新") var _refresh = refresh
const self_mod = Color.GRAY
func _ready() -> void:
refresh()
self_modulate = self_mod
meta_hover_started.connect(_on_meta_hover_started)
meta_hover_ended.connect(_on_meta_hover_ended)
# res://asset/dialogue/inspect_content.zh_CN.translation
var items_translation = preload("uid://eu5aw5htt74r") as Translation
func refresh():
var translation_key = "c04_除晦游戏" + str(id)
var msg = tr(translation_key)
if Engine.is_editor_hint():
msg = items_translation.get_message(translation_key)
msg = msg.replace("{br}", "\n")
text = '[url=' + str(id) + '][wave amp=8.0 freq=2.0]' + msg + "[/wave][/url]"
func _notification(what: int) -> void:
if what == NOTIFICATION_TRANSLATION_CHANGED:
refresh()
func _on_meta_hover_started(_m) -> void:
self_modulate = Color.WHITE
func _on_meta_hover_ended(_m) -> void:
self_modulate = self_mod

View File

@ -0,0 +1 @@
uid://bvkqk6qf83nux

View File

@ -0,0 +1,75 @@
extends Node2D
signal game_success
# inclusive, exclusive
@export var id_range := Vector2i(1, 15)
var available_labels: Array[RichTextLabel] = []
# 0:hide 1:display 2:cleared
var id_state_arr: Array[int] = []
var display_timer := Timer.new()
func _ready() -> void:
for c in get_children():
if c is RichTextLabel:
available_labels.append(c)
c.modulate.a = 0.0
c.meta_clicked.connect(_on_meta_clicked.bind(c))
id_state_arr.resize(id_range.y - id_range.x)
# 初始化文本
add_child(display_timer)
display_timer.wait_time = 1.5
display_timer.timeout.connect(_display_next)
# _reset_overtime_tween()
func start_disperse_game() -> void:
display_timer.start()
# 分配一个 id 到 labels 上
func _display_next() -> void:
if not available_labels:
if GlobalConfig.DEBUG:
print("no available labels")
return
var label = available_labels.pop_front()
var next_id = -1
for i in range(len(id_state_arr)):
if id_state_arr[i] == 0:
next_id = i + id_range.x
id_state_arr[i] = 1
break
if GlobalConfig.DEBUG:
print("next_id=", next_id)
if next_id > 0:
label.id = next_id
var tween = create_tween()
tween.tween_property(label, "modulate:a", 1.0, 1.0)
func _on_meta_clicked(meta, label: RichTextLabel):
var id = int(meta)
if id_state_arr[id - id_range.x] != 1:
return
available_labels.append(label)
id_state_arr[id - id_range.x] = 2
var tween = create_tween()
tween.tween_property(label, "modulate:a", 0.0, 1.0)
if id_state_arr.all(func(i): return i==2):
game_success.emit()
print("game success")
# _reset_overtime_tween()
# # 长时间不点击
# var overtime_tween: Tween
# func _reset_overtime_tween() -> void:
# if overtime_tween and overtime_tween.is_running():
# overtime_tween.kill()
# overtime_tween = create_tween()
# overtime_tween.tween_interval(2.0)

View File

@ -0,0 +1 @@
uid://bm1luy5kk6sbv

View File

@ -20,13 +20,13 @@ font_size = 36
[node name="PropHUD" type="Control"] [node name="PropHUD" type="Control"]
process_mode = 3 process_mode = 3
custom_minimum_size = Vector2(600, 500) custom_minimum_size = Vector2(300, 230)
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 0
offset_left = 8.0 offset_left = 8.0
offset_top = 4.0 offset_top = 4.0
offset_right = 608.0 offset_right = 608.0
offset_bottom = 504.0 offset_bottom = 204.0
scale = Vector2(0.3, 0.3) scale = Vector2(0.3, 0.3)
mouse_filter = 1 mouse_filter = 1
script = ExtResource("1_bbv0a") script = ExtResource("1_bbv0a")