From df4be588688208245be45948ed45a7a082c54fe1 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Fri, 7 Feb 2025 09:56:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=AD=BB=E7=B0=BF=E6=BC=94=E5=87=BA?= =?UTF-8?q?=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../临时草稿/{ => c01_序章}/ghost-sheet.png | Bin .../{ => c01_序章}/ghost-sheet.png.import | 6 +- asset/art/临时草稿/{ => c01_序章}/ghost.png | Bin .../临时草稿/{ => c01_序章}/ghost.png.import | 6 +- asset/art/临时草稿/{ => c01_序章}/纸片.png | Bin .../临时草稿/{ => c01_序章}/纸片.png.import | 6 +- .../art/临时草稿/{ => c01_序章}/纸片_正面.png | Bin .../{ => c01_序章}/纸片_正面.png.import | 6 +- asset/art/临时草稿/生死簿/生死簿.png | Bin 0 -> 1750 bytes asset/art/临时草稿/生死簿/生死簿.png.import | 34 ++++ asset/art/临时草稿/生死簿/生死簿名字.png | Bin 0 -> 902 bytes .../art/临时草稿/生死簿/生死簿名字.png.import | 34 ++++ asset/art/临时草稿/生死簿/陆小蝶名字.png | Bin 0 -> 627 bytes .../art/临时草稿/生死簿/陆小蝶名字.png.import | 34 ++++ asset/shader/glitcheffect.gdshader | 2 +- asset/shader/未使用/balatro_fire.gdshader | 16 +- .../ground/script/c01/s12_飘动的寻人启事.tscn | 2 +- scene/little_game/书架/生死簿.gd | 10 ++ scene/little_game/书架/生死簿.tscn | 149 +++++++++++++++++- scene/little_game/书架/陆小蝶名字.gd | 58 +++++++ scene/shading/ghost.tscn | 2 +- 21 files changed, 338 insertions(+), 27 deletions(-) rename asset/art/临时草稿/{ => c01_序章}/ghost-sheet.png (100%) rename asset/art/临时草稿/{ => c01_序章}/ghost-sheet.png.import (69%) rename asset/art/临时草稿/{ => c01_序章}/ghost.png (100%) rename asset/art/临时草稿/{ => c01_序章}/ghost.png.import (71%) rename asset/art/临时草稿/{ => c01_序章}/纸片.png (100%) rename asset/art/临时草稿/{ => c01_序章}/纸片.png.import (70%) rename asset/art/临时草稿/{ => c01_序章}/纸片_正面.png (100%) rename asset/art/临时草稿/{ => c01_序章}/纸片_正面.png.import (69%) create mode 100644 asset/art/临时草稿/生死簿/生死簿.png create mode 100644 asset/art/临时草稿/生死簿/生死簿.png.import create mode 100644 asset/art/临时草稿/生死簿/生死簿名字.png create mode 100644 asset/art/临时草稿/生死簿/生死簿名字.png.import create mode 100644 asset/art/临时草稿/生死簿/陆小蝶名字.png create mode 100644 asset/art/临时草稿/生死簿/陆小蝶名字.png.import create mode 100644 scene/little_game/书架/生死簿.gd create mode 100644 scene/little_game/书架/陆小蝶名字.gd diff --git a/asset/art/临时草稿/ghost-sheet.png b/asset/art/临时草稿/c01_序章/ghost-sheet.png similarity index 100% rename from asset/art/临时草稿/ghost-sheet.png rename to asset/art/临时草稿/c01_序章/ghost-sheet.png diff --git a/asset/art/临时草稿/ghost-sheet.png.import b/asset/art/临时草稿/c01_序章/ghost-sheet.png.import similarity index 69% rename from asset/art/临时草稿/ghost-sheet.png.import rename to asset/art/临时草稿/c01_序章/ghost-sheet.png.import index c1dc4f40..8c1d8739 100644 --- a/asset/art/临时草稿/ghost-sheet.png.import +++ b/asset/art/临时草稿/c01_序章/ghost-sheet.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://wvnpr0w3srtr" -path="res://.godot/imported/ghost-sheet.png-b0ae6f2c371a730d2abf0df2867d0094.ctex" +path="res://.godot/imported/ghost-sheet.png-fd0ed1a0a1580aa9bba0ac20527fbdcd.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/临时草稿/ghost-sheet.png" -dest_files=["res://.godot/imported/ghost-sheet.png-b0ae6f2c371a730d2abf0df2867d0094.ctex"] +source_file="res://asset/art/临时草稿/c01_序章/ghost-sheet.png" +dest_files=["res://.godot/imported/ghost-sheet.png-fd0ed1a0a1580aa9bba0ac20527fbdcd.ctex"] [params] diff --git a/asset/art/临时草稿/ghost.png b/asset/art/临时草稿/c01_序章/ghost.png similarity index 100% rename from asset/art/临时草稿/ghost.png rename to asset/art/临时草稿/c01_序章/ghost.png diff --git a/asset/art/临时草稿/ghost.png.import b/asset/art/临时草稿/c01_序章/ghost.png.import similarity index 71% rename from asset/art/临时草稿/ghost.png.import rename to asset/art/临时草稿/c01_序章/ghost.png.import index 7af0a476..35f0aceb 100644 --- a/asset/art/临时草稿/ghost.png.import +++ b/asset/art/临时草稿/c01_序章/ghost.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dryx1iyict3gd" -path="res://.godot/imported/ghost.png-be8d53dbf62bca42bbf3c61f27140309.ctex" +path="res://.godot/imported/ghost.png-68c970ef18f4992531a7fb7b8fd05408.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/临时草稿/ghost.png" -dest_files=["res://.godot/imported/ghost.png-be8d53dbf62bca42bbf3c61f27140309.ctex"] +source_file="res://asset/art/临时草稿/c01_序章/ghost.png" +dest_files=["res://.godot/imported/ghost.png-68c970ef18f4992531a7fb7b8fd05408.ctex"] [params] diff --git a/asset/art/临时草稿/纸片.png b/asset/art/临时草稿/c01_序章/纸片.png similarity index 100% rename from asset/art/临时草稿/纸片.png rename to asset/art/临时草稿/c01_序章/纸片.png diff --git a/asset/art/临时草稿/纸片.png.import b/asset/art/临时草稿/c01_序章/纸片.png.import similarity index 70% rename from asset/art/临时草稿/纸片.png.import rename to asset/art/临时草稿/c01_序章/纸片.png.import index bfdd12b0..642d979e 100644 --- a/asset/art/临时草稿/纸片.png.import +++ b/asset/art/临时草稿/c01_序章/纸片.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cx8ny1barwdwy" -path="res://.godot/imported/纸片.png-a8bd0177d01abb04bca508d0a6f52ec4.ctex" +path="res://.godot/imported/纸片.png-9104f73d086c6ee0e16c1ef27489823e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/临时草稿/纸片.png" -dest_files=["res://.godot/imported/纸片.png-a8bd0177d01abb04bca508d0a6f52ec4.ctex"] +source_file="res://asset/art/临时草稿/c01_序章/纸片.png" +dest_files=["res://.godot/imported/纸片.png-9104f73d086c6ee0e16c1ef27489823e.ctex"] [params] diff --git a/asset/art/临时草稿/纸片_正面.png b/asset/art/临时草稿/c01_序章/纸片_正面.png similarity index 100% rename from asset/art/临时草稿/纸片_正面.png rename to asset/art/临时草稿/c01_序章/纸片_正面.png diff --git a/asset/art/临时草稿/纸片_正面.png.import b/asset/art/临时草稿/c01_序章/纸片_正面.png.import similarity index 69% rename from asset/art/临时草稿/纸片_正面.png.import rename to asset/art/临时草稿/c01_序章/纸片_正面.png.import index 318245c5..4167f95a 100644 --- a/asset/art/临时草稿/纸片_正面.png.import +++ b/asset/art/临时草稿/c01_序章/纸片_正面.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c6vi6umco6o0a" -path="res://.godot/imported/纸片_正面.png-42b654938cd8738cd210ea618ad1b29d.ctex" +path="res://.godot/imported/纸片_正面.png-b3eff97e26be42ec2e9fc396225adbb2.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/临时草稿/纸片_正面.png" -dest_files=["res://.godot/imported/纸片_正面.png-42b654938cd8738cd210ea618ad1b29d.ctex"] +source_file="res://asset/art/临时草稿/c01_序章/纸片_正面.png" +dest_files=["res://.godot/imported/纸片_正面.png-b3eff97e26be42ec2e9fc396225adbb2.ctex"] [params] diff --git a/asset/art/临时草稿/生死簿/生死簿.png b/asset/art/临时草稿/生死簿/生死簿.png new file mode 100644 index 0000000000000000000000000000000000000000..30821a25e2494265c5677442123b5b0a7b16be8b GIT binary patch literal 1750 zcmZuydpJ~S96mE94W*eel#0xlDYea`TtZci!Lod*AOnC-Q`anVjr4SpWd! zXyzuT000I;V;)i(y1!H`6F?7`*C{h9P}rtC0szt=&E)WDf6hejFBbfBN=&DwQPTEM zxnel+!$xN&OG$GWiPwBonQHP%wldV0a6H4HT(9zkThr1tFUwMR}u zxGNXBEG-ZK_7t=*ROkGJXI#kR&C*i4wq$%AbMs5LcUT^pExNlqO0YCJ_cm+8D^FcC z4b`W~nWwn(cX*|pJ~i2eUlwZg4;zd;WJH){EL07hoe=K%pr1PLf5Osd%Gby1I{%yB z9@JEWt}B1Xl?!vjr?Hm&0S=?q_j^dZQQVzB1)eyy3AdE+%V~~nGrv!c^*3%dYOiA5 zE5c*lRgZPYTcN>EZYkK5&+;cNu&@70^kqwhoKIfhJjZ0IL`N{6mO8=brC%Tp#HNq& z--kIEdTiEuU6#9kzxoBcQAb05?}PFRZf}>$q5#&AWQB6n*o2LvU9x{()%sBTrB{d` z=51wp^`ZF##=*g}6|Oj($~RY^zEL&jka`a|bu-!2#1JP3JLn8m>?&g?8YRnctl2F# z@33H;34MtZKsg8R42vLzT}Qei&7&Iz_X1pbFq0DwEFPmU^L+xgX9U8jzI}PW4U%r( zMaO3&5KJ`8b=v++Uem3Ixwl{*$p~UytanOnA-gF5CI2{u7x%0fs)*lP4;w-9Fq2`x zJ1iQYB8WUFOD}I~lR6GyA-iQG-tCrnh42=eBQiVy%04L0&LPYm2FO@6 z&NkUg)szAtF=*VeHu6m@7-|@~Zs4eB2HXJ+r;K4RoQXI@^q8+_5Jl)n01xj>RDa^Q zl{84^Fafk0F0wpf)4&Rlhzy?n#PMwK;-YbcFpb1Oq1~)a`i_5?I6w zPKgi`TBRvZr}^Rh#IrGtRnm2xGLj^4CtJx$e}zKal&#Ddq)*?v&^gHNv_NF3SVmDU zRoA`nYBXdn>DK zWKi?6k|{;Lm?Hxc*4oDfSr5iy#4cj=I)|DQZP07wwY1pg%=_{ZiGEP*KOqsn;V1Y( zF$zK??eNE?$qN6X$A7%**H>SYh3-_vSI7jzo{E)}yv`&T*4tW&x526vt1DoF5!q0Y z-+OV?2_UX<`axsJ8fw&vH4;EvP)P8yNJb)#-g?eur5$tXSV>PUx8}If#%<8YLoofx zb=1k@q8&Ht|270GzlK|*px0Gqg_62RqcGh9Sbj=k$#_w08N3RN)@VCSabN4hl%DJ1 z*t`}pNdb`_`Y>7@p}N=(I=uVdyHsQaDi4`cOa;=1ioM~~e@Ksznk&L6ed}Ue|4H$~JbQK~~Rlim_g2wt-|3L_lYG z=G&Cc%znV)D1}KnZ)ZO|Fq~8Dl literal 0 HcmV?d00001 diff --git a/asset/art/临时草稿/生死簿/生死簿.png.import b/asset/art/临时草稿/生死簿/生死簿.png.import new file mode 100644 index 00000000..0269517e --- /dev/null +++ b/asset/art/临时草稿/生死簿/生死簿.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cndai8whwoytn" +path="res://.godot/imported/生死簿.png-9e0db0f43d213880f862d1ac0028c5b0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/临时草稿/生死簿/生死簿.png" +dest_files=["res://.godot/imported/生死簿.png-9e0db0f43d213880f862d1ac0028c5b0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/临时草稿/生死簿/生死簿名字.png b/asset/art/临时草稿/生死簿/生死簿名字.png new file mode 100644 index 0000000000000000000000000000000000000000..a90390265b6b6836f283b6dda5b4c8486d1f9ce6 GIT binary patch literal 902 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}jKx9jP7LeL$-HD>V0Q3yaSW-L z^Y*T9(P9Guwt&>EyvM)gk3K)SW`z=8!kma#{%5LJhnVGgu9a_TxCYb>1iN+H?nkba?&-#)3HP*d%^W>H5KC25!J=q>~>ccg+ zIIgWK=i?MFPkOz=@KTcPq$`cPdm=RVrk%F>x&2YiHO)z(>X&atUyq1pt^O15^-x~; zdD-sTB}cyTUG4s^DEiaFHSG3mqdvC{H*-qoOx%CJ_G8_)>pedE*51F-ZJc@6Xma9h zUiaQfTjou)d4I9=h?UojC7I8)!dtsvWp3E&_&Xw9MJ4oA>#=#px2;1{HEvhNi(443 zObe=I-LW(}Y44>BQPJYoCAV(h^VIPF&U>lFNv?8^+qAaGNww2{TrP=Cek*E~sQbYy zXY=YC?lQZM-J1PLs4CWp$9B!@>XhZ0w-xU03J>4wyuY+GRQ7UYrt;elZ`+K615T~j zR=&7OEmU?zTIs^`?sdFQ28SGRwVPde)?9>5F?4&buvc zIr{P9-mNV^(oAx+?qttc!sgwTT6R|`d)dq6XOB;;Y|EK&&Q9ozoIL}>`|!ehXLn2M zt$XEF{^RPo9_hZ9hVPGtSFX-E;rrqWn`QE{y=#}0r}E6?njE*j_(`Geq>|!4CjxUq z3;Fkk@9@Z7vPABGu;$mhwMVL+7Jkc0kIOPz-1SQ?EK}3=WzWo{*xR#qt)ABEofcPE!PYd{UpFB}^J~m6m6BV( zp5C0faZ5$N&F=&0`Of<{+=}|E_+QyrX0hF*kn?xl*X%uJRVB0M(B|`}m#STUlw;d} zsdjhbPwSuFq1or>Y58@3zZg2d_fOKc(vxQ{y|Q}5%=G8pQ#Vzxdx<5u{xFw)?zwkC Rzd;A2#naW#Wt~$(69Bc(s%HQI literal 0 HcmV?d00001 diff --git a/asset/art/临时草稿/生死簿/生死簿名字.png.import b/asset/art/临时草稿/生死簿/生死簿名字.png.import new file mode 100644 index 00000000..786cc2e1 --- /dev/null +++ b/asset/art/临时草稿/生死簿/生死簿名字.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpfpxox5q5ql3" +path="res://.godot/imported/生死簿名字.png-afb8dbf8ccc3016d7d4bed6879fab76b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/临时草稿/生死簿/生死簿名字.png" +dest_files=["res://.godot/imported/生死簿名字.png-afb8dbf8ccc3016d7d4bed6879fab76b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/art/临时草稿/生死簿/陆小蝶名字.png b/asset/art/临时草稿/生死簿/陆小蝶名字.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1fffce6ff9e962223ffed24e28ae79fa0a26c1 GIT binary patch literal 627 zcmV-(0*w8MP)Px%ElET{RCt{2np zuEfb?08ftjT21Fcn6XMJFX^N;C!Z(N(?ny8OkXP8ja6@N+KAILRJ4FI=xNg4*S0rn zY*t(b&@)ggpf*ofDW2ELmqy;v7&4~TPC{+8rW znO3DWlAg`$&YYu7)Wh9aqb<;D+l$yf>Kv-R){d!nPup%wR6-wKZa6FU&0dMK+PnLL z&Yquj@k)u+W2#?r1FNtOOd2Z6gUxqbf5VxC3%9BWqYlo88fm|5>zsaXnRwcFVf zO>&o&wJ`t@SKk6Z`dcB`c|vqb_do9d00000000000000000030_yy*T;YF9A^Lk literal 0 HcmV?d00001 diff --git a/asset/art/临时草稿/生死簿/陆小蝶名字.png.import b/asset/art/临时草稿/生死簿/陆小蝶名字.png.import new file mode 100644 index 00000000..4081c427 --- /dev/null +++ b/asset/art/临时草稿/生死簿/陆小蝶名字.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4n4e3lid3tu2" +path="res://.godot/imported/陆小蝶名字.png-8108706d0ed00a19530aea4b52059bef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/临时草稿/生死簿/陆小蝶名字.png" +dest_files=["res://.godot/imported/陆小蝶名字.png-8108706d0ed00a19530aea4b52059bef.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/shader/glitcheffect.gdshader b/asset/shader/glitcheffect.gdshader index 411e7e8c..a92d8085 100644 --- a/asset/shader/glitcheffect.gdshader +++ b/asset/shader/glitcheffect.gdshader @@ -1,6 +1,6 @@ /* https://godotshaders.com/shader/glitch-effect-shader-for-godot-engine-4/ - + Glitch Effect Shader by Yui Kinomoto @arlez80 MIT License */ diff --git a/asset/shader/未使用/balatro_fire.gdshader b/asset/shader/未使用/balatro_fire.gdshader index 144ef882..87c13cc1 100644 --- a/asset/shader/未使用/balatro_fire.gdshader +++ b/asset/shader/未使用/balatro_fire.gdshader @@ -21,30 +21,30 @@ vec4 tri_color_mix(vec4 color1, vec4 color2, vec4 color3, float pos) { void fragment() { // Scale UVs to make the noise more visible vec2 base_uv = UV * 1.0; - + // Create two layers of noise with different speeds vec2 shifted_uv1 = base_uv + TIME * fire_speed; vec2 shifted_uv2 = base_uv + TIME * fire_speed * 1.5; - + // Sample noise texture twice float fire_noise1 = texture(noise_tex, fract(shifted_uv1)).r; float fire_noise2 = texture(noise_tex, fract(shifted_uv2)).r; - + // Combine the noise samples float combined_noise = (fire_noise1 + fire_noise2) * 0.5; - + // Calculate fire shape float noise = UV.y * (((UV.y + fire_aperture) * combined_noise - fire_aperture) * 75.0); - + // Add horizontal movement noise += sin(UV.y * 10.0 + TIME * 2.0) * 0.1; - + // Calculate gradient position and mix three colors float gradient_pos = clamp(noise * 0.08, 0.3, 2.0); //vec4 smoth_mid_color = smoothstep(top_color, middle_color, vec4(1)); vec4 fire_color = tri_color_mix(bottom_color, middle_color, top_color, gradient_pos); - - + + // Set final color and alpha COLOR = fire_color; diff --git a/scene/ground/script/c01/s12_飘动的寻人启事.tscn b/scene/ground/script/c01/s12_飘动的寻人启事.tscn index 1cf31ad8..7bdd53f7 100644 --- a/scene/ground/script/c01/s12_飘动的寻人启事.tscn +++ b/scene/ground/script/c01/s12_飘动的寻人启事.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://scene/ground/script/c01/s12_飘动的寻人启事.gd" id="1_like6"] [ext_resource type="Shader" path="res://asset/shader/rotation_displacement_vertex.gdshader" id="2_2w1m2"] -[ext_resource type="Texture2D" uid="uid://c6vi6umco6o0a" path="res://asset/art/临时草稿/纸片_正面.png" id="3_dl751"] +[ext_resource type="Texture2D" uid="uid://c6vi6umco6o0a" path="res://asset/art/临时草稿/c01_序章/纸片_正面.png" id="3_dl751"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_q4vn8"] shader = ExtResource("2_2w1m2") diff --git a/scene/little_game/书架/生死簿.gd b/scene/little_game/书架/生死簿.gd new file mode 100644 index 00000000..09b4b345 --- /dev/null +++ b/scene/little_game/书架/生死簿.gd @@ -0,0 +1,10 @@ +extends CanvasLayer + +@onready var signature = %"陆小蝶" + +func _ready() -> void: + layer = GlobalConfig.LAYER_LITTLE_GAME + # SceneManager.pop_center_notification(tr("input_拼凑信件")) + signature.visible = false + # test + get_tree().create_timer(3.0).timeout.connect(signature.play) diff --git a/scene/little_game/书架/生死簿.tscn b/scene/little_game/书架/生死簿.tscn index 5133465f..31bcd428 100644 --- a/scene/little_game/书架/生死簿.tscn +++ b/scene/little_game/书架/生死簿.tscn @@ -1,7 +1,148 @@ -[gd_scene format=3 uid="uid://bl5pohc77hi43"] +[gd_scene load_steps=11 format=3 uid="uid://bl5pohc77hi43"] -[node name="生死簿" type="Node2D"] +[ext_resource type="Texture2D" uid="uid://cndai8whwoytn" path="res://asset/art/临时草稿/生死簿/生死簿.png" id="1_7k4qj"] +[ext_resource type="Script" path="res://scene/little_game/书架/生死簿.gd" id="1_wipr2"] +[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_17f8x"] +[ext_resource type="Texture2D" uid="uid://d4n4e3lid3tu2" path="res://asset/art/临时草稿/生死簿/陆小蝶名字.png" id="3_858cl"] +[ext_resource type="Texture2D" uid="uid://cpfpxox5q5ql3" path="res://asset/art/临时草稿/生死簿/生死簿名字.png" id="3_wngb0"] +[ext_resource type="Script" path="res://scene/little_game/书架/陆小蝶名字.gd" id="4_dssaj"] +[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/c02/撞到柜子.mp3" id="4_jifnx"] -[node name="p1" type="Sprite2D" parent="."] +[sub_resource type="AtlasTexture" id="AtlasTexture_isheb"] +atlas = ExtResource("3_wngb0") +region = Rect2(9, 5, 40, 75) -[node name="p2" type="Sprite2D" parent="."] +[sub_resource type="AtlasTexture" id="AtlasTexture_wk6af"] +atlas = ExtResource("3_wngb0") +region = Rect2(56, 8, 28, 68) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b5epk"] +atlas = ExtResource("3_wngb0") +region = Rect2(105, 6, 29, 70) + +[node name="生死簿" type="CanvasLayer"] +layer = 11 +script = ExtResource("1_wipr2") + +[node name="SfxStamp" parent="." instance=ExtResource("3_17f8x")] +stream = ExtResource("4_jifnx") +dir = "c02" +file = "撞到柜子.mp3" + +[node name="bg" type="TextureRect" parent="."] +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -100.0 +offset_bottom = 100.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("1_7k4qj") +stretch_mode = 5 + +[node name="p1" type="TextureRect" parent="bg"] +layout_mode = 0 +offset_top = -58.0 +offset_bottom = -58.0 +mouse_filter = 2 +stretch_mode = 5 + +[node name="陆小蝶" type="Sprite2D" parent="bg"] +unique_name_in_owner = true +modulate = Color(0.503203, 0.320866, 0.30312, 1) +position = Vector2(340, 103) +texture = ExtResource("3_858cl") +script = ExtResource("4_dssaj") +area_size = Vector2(100, 150) + +[node name="seal1" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_isheb") + +[node name="seal2" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_wk6af") + +[node name="seal3" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_b5epk") + +[node name="seal4" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_isheb") + +[node name="seal5" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_wk6af") + +[node name="seal6" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_b5epk") + +[node name="seal7" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_isheb") + +[node name="seal8" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_wk6af") + +[node name="seal9" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_b5epk") + +[node name="seal10" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_isheb") + +[node name="seal11" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_wk6af") + +[node name="seal12" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_b5epk") + +[node name="seal13" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_isheb") + +[node name="seal14" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_wk6af") + +[node name="seal15" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_b5epk") + +[node name="seal16" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_isheb") + +[node name="seal17" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_wk6af") + +[node name="seal18" type="Sprite2D" parent="bg/陆小蝶"] +modulate = Color(0.710006, 0.41208, 0.953067, 1) +scale = Vector2(0.5, 0.5) +texture = SubResource("AtlasTexture_b5epk") diff --git a/scene/little_game/书架/陆小蝶名字.gd b/scene/little_game/书架/陆小蝶名字.gd new file mode 100644 index 00000000..ef766ce0 --- /dev/null +++ b/scene/little_game/书架/陆小蝶名字.gd @@ -0,0 +1,58 @@ +@tool +extends Sprite2D + +@export var area_size := Vector2(60, 60): + set(val): + area_size = val + queue_redraw() +@export var gizmo_outline_color := Color(0.8, 0.3, 0.1, 0.8): + set(val): + gizmo_outline_color = val + queue_redraw() + + +func play() -> void: + visible = true + var tween = create_tween() + tween.tween_interval(3.0) + tween.tween_property(self, "self_modulate:a", 0.0, 15.0) + var final_modulate = Color.PALE_VIOLET_RED + tween.parallel().tween_property(get_parent(), "modulate", final_modulate, 15.0) + tween = create_tween() + var interval = 3. + for c in self.get_children(): + c.visible = false + tween.tween_interval(interval) + tween.tween_callback(_stamp_seal.bind(c)) + interval = max(interval - 0.3, 0.4) + + +func _stamp_seal(seal: Sprite2D) -> void: + # rand self_modulate + seal.self_modulate = Color(randf_range(.8, 1.), randf_range(.8, 1.), randf_range(.8, 1.), 1.) + # rand rotation + seal.rotation = randf_range(-1., 1.) + # rand position within area + seal.position = Vector2( + randf_range(-area_size.x * 0.5, area_size.x * 0.5), + randf_range(-area_size.y * 0.5, area_size.y * 0.5) + ) + # stamp + $"../../SfxStamp".play() + # show + seal.visible = true + var origin_scale = seal.scale + create_tween().tween_property(seal, "scale", origin_scale * Vector2(1.05, 1.05), .1) + create_tween().tween_property(seal, "scale", origin_scale * Vector2(1.0, 1.), .1) + + +func _draw() -> void: + if Engine.is_editor_hint(): + # draw gizmo + var area_rect = Rect2(-area_size * 0.5, area_size) + # fill + var fill_color = gizmo_outline_color + fill_color.a = 0.4 + draw_rect(area_rect, fill_color) + # outline + draw_rect(area_rect, gizmo_outline_color, false, 1.0) diff --git a/scene/shading/ghost.tscn b/scene/shading/ghost.tscn index c941d3b5..af295ce5 100644 --- a/scene/shading/ghost.tscn +++ b/scene/shading/ghost.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://h0s5ms7r7d8g"] [ext_resource type="Shader" path="res://scene/shading/ghost.gdshader" id="1_n4q4i"] -[ext_resource type="Texture2D" uid="uid://wvnpr0w3srtr" path="res://asset/art/临时草稿/ghost-sheet.png" id="2_vp102"] +[ext_resource type="Texture2D" uid="uid://wvnpr0w3srtr" path="res://asset/art/临时草稿/c01_序章/ghost-sheet.png" id="2_vp102"] [ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="4_lap87"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"]