From d879e9d3fab5d7a986004d75274dbdca8035799e Mon Sep 17 00:00:00 2001 From: cakipaul Date: Thu, 6 Feb 2025 20:19:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20shader=20=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=EF=BC=9B=E4=BC=98=E5=8C=96=E9=A3=98=E5=8A=A8=E7=BA=B8?= =?UTF-8?q?=E7=89=87=E7=9A=84=E6=95=88=E6=9E=9C=EF=BC=9B=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=20c01=20=E4=B9=A6=E5=BA=97=E5=86=85=E5=A4=96=E7=9A=84=E5=9C=BA?= =?UTF-8?q?=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset/art/临时草稿/ghost-sheet.png | Bin 0 -> 88161 bytes asset/art/临时草稿/ghost-sheet.png.import | 34 +++++++ asset/art/临时草稿/ghost.png | Bin 0 -> 35808 bytes asset/art/临时草稿/ghost.png.import | 34 +++++++ asset/art/临时草稿/纸片_正面.png | Bin 0 -> 955 bytes asset/art/临时草稿/纸片_正面.png.import | 34 +++++++ asset/dialogue/item_description.csv | 2 +- asset/dialogue/item_description.dialogue | 2 +- asset/shader/glitcheffect.gdshader | 3 +- .../rotation_displacement_vertex.gdshader | 23 +++++ asset/shader/wobbly_grid.gdshader | 30 +++++++ asset/shader/wobbly_grid.tres | 22 +++++ asset/shader/未使用/aurora.gdshader | 53 +++++++++++ asset/shader/未使用/balatro_bg.gdshader | 62 +++++++++++++ asset/shader/未使用/balatro_fire.gdshader | 52 +++++++++++ asset/shader/未使用/electric_ball.gdshader | 29 ++++++ asset/shader/未使用/fire_bullet.gdshader | 49 +++++++++++ asset/shader/未使用/fireball.gdshader | 51 +++++++++++ asset/shader/未使用/highlight.gdshader | 83 ++++++++++++++++++ asset/shader/未使用/ripple.gdshader | 43 +++++++++ asset/shader/未使用/tube_with_balls.gdshader | 31 +++++++ scene/entity/portal.gd | 2 +- scene/ground/ground.gd | 7 +- scene/ground/scene/c01/s07_书店外.tscn | 1 + scene/ground/scene/c01/s08_animation.gd | 12 +-- scene/ground/scene/c01/s08_书店.tscn | 8 +- scene/ground/scene/c01/s12_animation.gd | 4 +- scene/ground/scene/c01/s12_书店外_诡异版.tscn | 12 ++- scene/ground/scene/c02/s01_街道.tscn | 2 + scene/ground/scene/c02/s03_院子_黄昏无人.tscn | 1 + scene/ground/script/c01/s00_自动跟随的老鼠.gd | 2 +- scene/ground/script/c01/s12_飘动的寻人启事.gd | 20 ++--- .../ground/script/c01/s12_飘动的寻人启事.tscn | 18 ++-- scene/little_game/{ => 书架}/书架.gd | 0 scene/little_game/{ => 书架}/书架.tscn | 2 +- scene/little_game/书架/生死簿.tscn | 7 ++ scene/little_game/拼凑信件.gd | 9 +- scene/shading/ghost.tscn | 41 +++++++-- 38 files changed, 735 insertions(+), 50 deletions(-) create mode 100644 asset/art/临时草稿/ghost-sheet.png create mode 100644 asset/art/临时草稿/ghost-sheet.png.import create mode 100644 asset/art/临时草稿/ghost.png create mode 100644 asset/art/临时草稿/ghost.png.import create mode 100644 asset/art/临时草稿/纸片_正面.png create mode 100644 asset/art/临时草稿/纸片_正面.png.import create mode 100644 asset/shader/rotation_displacement_vertex.gdshader create mode 100644 asset/shader/wobbly_grid.gdshader create mode 100644 asset/shader/wobbly_grid.tres create mode 100644 asset/shader/未使用/aurora.gdshader create mode 100644 asset/shader/未使用/balatro_bg.gdshader create mode 100644 asset/shader/未使用/balatro_fire.gdshader create mode 100644 asset/shader/未使用/electric_ball.gdshader create mode 100644 asset/shader/未使用/fire_bullet.gdshader create mode 100644 asset/shader/未使用/fireball.gdshader create mode 100644 asset/shader/未使用/highlight.gdshader create mode 100644 asset/shader/未使用/ripple.gdshader create mode 100644 asset/shader/未使用/tube_with_balls.gdshader rename scene/little_game/{ => 书架}/书架.gd (100%) rename scene/little_game/{ => 书架}/书架.tscn (99%) create mode 100644 scene/little_game/书架/生死簿.tscn diff --git a/asset/art/临时草稿/ghost-sheet.png b/asset/art/临时草稿/ghost-sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..0d1a58695e70426e078ce481a2c7ed8e4a34ce85 GIT binary patch literal 88161 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%0A-V8{|8#yhvw(B>qcX@c&Y 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 literal 0 HcmV?d00001 diff --git a/asset/art/临时草稿/ghost-sheet.png.import b/asset/art/临时草稿/ghost-sheet.png.import new file mode 100644 index 00000000..c1dc4f40 --- /dev/null +++ b/asset/art/临时草稿/ghost-sheet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wvnpr0w3srtr" +path="res://.godot/imported/ghost-sheet.png-b0ae6f2c371a730d2abf0df2867d0094.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/临时草稿/ghost-sheet.png" +dest_files=["res://.godot/imported/ghost-sheet.png-b0ae6f2c371a730d2abf0df2867d0094.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/临时草稿/ghost.png b/asset/art/临时草稿/ghost.png new file mode 100644 index 0000000000000000000000000000000000000000..1200b945a18352b736466b261dc50a7789259c0f GIT binary patch literal 35808 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�U;qFh07*naRIbz*!>SeDi*iu8HViqB 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 AlK=n! literal 0 HcmV?d00001 diff --git a/asset/art/临时草稿/ghost.png.import b/asset/art/临时草稿/ghost.png.import new file mode 100644 index 00000000..7af0a476 --- /dev/null +++ b/asset/art/临时草稿/ghost.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dryx1iyict3gd" +path="res://.godot/imported/ghost.png-be8d53dbf62bca42bbf3c61f27140309.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/临时草稿/ghost.png" +dest_files=["res://.godot/imported/ghost.png-be8d53dbf62bca42bbf3c61f27140309.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..1e5a79675984cce4751cb9ebc46c4e33bcc427ab GIT binary patch literal 955 zcmV;s14R6ZP)Px&bxA})RA_OVitiwl}>fIeDrQtrZj^Mu}h!USbdF8)w%|c4l`>d)NA z?>q0!%$qFW;o;%o@jue-^Ig)9%1-N0Z`~DLB1Z7#%*+Jl7gnSi$;?aufb@F+P;WGB zZ3F~`kRhFBeqlve$ZgR|`}zl+TV%t*{w{!~;Z8fvr_vxNq>{7joWj;g2nu_|+-PoT zj+JvubL>8yTfNJ_!$aOa*x&7pM|dN7qpggy!YrJ>E?P$`q&&hKVfGGh6kpc$B8vKI z+j??Kb8MVAMR?Zg>mR(`ITT)^~H9E;0^mLX;pR-!YP z@H%4d^;V33 zRRC8)`8wQ=4?sXjz0v66S9iW)GQ>P4WN0_j$>3-mp@y9rKw|k$a1&O5iv`h21n-S^ z?-wzdN@9Djif7|*oi-zktq{>%%PfMJOeGCR8Dv)Yj;1KQ7+o(4jVIBhQMr(puUm&v z<*3T;`|sRS+U|{bWMg9;0MP$nh+V53HK*T;^E1R^V*u2OQ7+``r;oTeKQmn8Mesa& z{zO^3ZPyXm?P>Y2xti;G5!rk*H3{`rQ9cYHortpMHh!!Li|F?GE|pBbqG>gSOF9un zEH;KvZ_^7Tj)c)sHOfLOn=fH!vw&1`79T$ULisQNP4hEB^b7#3|GsN@w_WD@PiC!= z(F8_D6952B^P^Tf!Err|P;ZrmRwNQaIuTXwnHyV2YPAz+nxBZLKD2r!B5LlFgS4vk^hY)A82*$1HsZfJ)`mO|zD`5<;=A zX?_HQJ?uwpZI#*iaXsv&DO((`BQ#idHVYVkleu<(XS2C8j6^c1R8E;dvp3xC)d}ex zB9Tr+kxI@o5!Cx6U}!jQxXycuP$dFzAtakGVQ4sR2p`}|fEn|10PyAeDPFy}F3<^% zR(6#=Y1g)Bnk4KIv+=5WQWYKl@7L*nyLL!_A8`xiPImS3-(f`atsBA3SE^2Y;qvhC d@bK{9`2+VHo!s`$n6dx>002ovPDHLkV1gr3x1az3 literal 0 HcmV?d00001 diff --git a/asset/art/临时草稿/纸片_正面.png.import b/asset/art/临时草稿/纸片_正面.png.import new file mode 100644 index 00000000..318245c5 --- /dev/null +++ b/asset/art/临时草稿/纸片_正面.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6vi6umco6o0a" +path="res://.godot/imported/纸片_正面.png-42b654938cd8738cd210ea618ad1b29d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/临时草稿/纸片_正面.png" +dest_files=["res://.godot/imported/纸片_正面.png-42b654938cd8738cd210ea618ad1b29d.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/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 7ee97417..63e35910 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -40,7 +40,7 @@ ui_auto_saved,自动保存成功,,,, ui_press_e,按 E 与场景互动,,,, ui_press_b,按 B 打开背包,,,, ui_press_shift,按住 Shift 奔跑,,,, -input_拼凑信件,按 E 旋转,方向键移动,,,, +input_拼凑信件,点击选择信件碎片,方向键移动,按 E 旋转,,,, ui_获得,获得,,,, ui_退出,退出,Exit,,, ui_阅读,阅读,Read,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index e44179d9..1ec4abb0 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -22,7 +22,7 @@ 按 E 与场景互动 [ID:ui_press_e] 按 B 打开背包 [ID:ui_press_b] 按住 Shift 奔跑 [ID:ui_press_shift] -按 E 旋转,方向键移动 [ID:input_拼凑信件] +点击选择信件碎片,方向键移动,按 E 旋转 [ID:input_拼凑信件] 获得 [ID:ui_获得] 退出 [ID:ui_退出] diff --git a/asset/shader/glitcheffect.gdshader b/asset/shader/glitcheffect.gdshader index bcbcfbc7..411e7e8c 100644 --- a/asset/shader/glitcheffect.gdshader +++ b/asset/shader/glitcheffect.gdshader @@ -1,6 +1,7 @@ /* + 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/rotation_displacement_vertex.gdshader b/asset/shader/rotation_displacement_vertex.gdshader new file mode 100644 index 00000000..03f68cad --- /dev/null +++ b/asset/shader/rotation_displacement_vertex.gdshader @@ -0,0 +1,23 @@ +// https://godotshaders.com/shader/rotation-displacement-vertex-shader/ +shader_type canvas_item; + +// Set this to your polygon's center in local space. +uniform vec2 center = vec2(25., 25.); +uniform float amplitude : hint_range(0.0, 1.0) = 0.15; +uniform float frequency = 1.5; + +void vertex() { + // Translate vertex position so the center is at (0, 0). + vec2 pos = VERTEX - center; + // Compute the angle of the vertex relative to the center. + // This angle will be used to offset the sine wave phase. + float angle = atan(pos.y, pos.x); + // Create a sine wave where each vertex is offset by its angle. + // You can adjust the formula as desired. + float wave = sin(TIME * frequency - angle); + // Use the wave value to scale the vertex's distance from the center. + pos *= 1.0 + amplitude * wave; + // Move the vertex back to the original coordinate space. + VERTEX = pos + center; +} + diff --git a/asset/shader/wobbly_grid.gdshader b/asset/shader/wobbly_grid.gdshader new file mode 100644 index 00000000..7a084b1e --- /dev/null +++ b/asset/shader/wobbly_grid.gdshader @@ -0,0 +1,30 @@ +// https://godotshaders.com/shader/wobbly-grid/ + +shader_type canvas_item; + +uniform float lineWidth : hint_range(0.0, 3.0, 0.1); +uniform vec2 size; +uniform sampler2D noise: filter_nearest; +uniform sampler2D noise2: filter_nearest; +uniform float edge_fade : hint_range(0.0, 1.0, 0.1); +uniform float wave_speed: hint_range(0.0, 10.0, 0.1); + +void fragment() { + + float n = texture(noise,mod(UV+-TIME*wave_speed/21.2,1.0)).r; + float n2 = texture(noise2,mod(UV+14.7+TIME*wave_speed/40.3,1.0)).r;; + float n3 = clamp(0.0,0.3+pow(n+(n2*0.4),3.0)*1.5,1.0); + //COLOR.rgb *= vec3(n3); + + vec2 m = 1.0-(edge_fade*abs(UV-0.5)*2.0*size-size+1.0+lineWidth/50.0); + float ma = min(m.x,m.y); + + float uvx = mod(UV.x-((n3-0.5)/100.0)-(mod(size.x,2)/2.0+0.5),1.0/size.x)*size.x; + float uvy = mod(UV.y-((n3-0.5)/100.0)-(mod(size.y,2)/2.0+0.5),1.0/size.y)*size.y; + vec2 uv = vec2(uvx,uvy); + vec2 w = size * max(n3,0.5) * lineWidth/10.0; + if(((uv.x>=w.x)&&(uv.x<=1.0-w.x))&&((uv.y>=w.y)&&(uv.y<=1.0-w.y))){ + discard; + } + COLOR.a = ma * n3; +} \ No newline at end of file diff --git a/asset/shader/wobbly_grid.tres b/asset/shader/wobbly_grid.tres new file mode 100644 index 00000000..e5db42d4 --- /dev/null +++ b/asset/shader/wobbly_grid.tres @@ -0,0 +1,22 @@ +[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://dwf85pmqefh3v"] + +[ext_resource type="Shader" path="res://asset/shader/wobbly_grid.gdshader" id="1_dm0mo"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_i7qxy"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_hol54"] +noise = SubResource("FastNoiseLite_i7qxy") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_5dvys"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_8s07y"] +noise = SubResource("FastNoiseLite_5dvys") + +[resource] +shader = ExtResource("1_dm0mo") +shader_parameter/lineWidth = 0.1 +shader_parameter/size = Vector2(8, 8) +shader_parameter/edge_fade = 1.0 +shader_parameter/wave_speed = 1.0 +shader_parameter/noise = SubResource("NoiseTexture2D_hol54") +shader_parameter/noise2 = SubResource("NoiseTexture2D_8s07y") diff --git a/asset/shader/未使用/aurora.gdshader b/asset/shader/未使用/aurora.gdshader new file mode 100644 index 00000000..2b434235 --- /dev/null +++ b/asset/shader/未使用/aurora.gdshader @@ -0,0 +1,53 @@ +// https://godotshaders.com/shader/2d-aurora-borealis/ +shader_type canvas_item; + +group_uniforms Frag_unis; +uniform float aurora_scroll_speed: hint_range(0.0, 1.0, 0.1) = .2; +uniform float color_scroll_speed: hint_range(0.0, 5.0, 0.1) = 1.2; +uniform sampler2D lower_transparency_mask :repeat_enable; +uniform float curve_horizontal_repition: hint_range(1.0, 10.0, 0.0001); +uniform float glow_strength: hint_range(0.0, 10.0, 0.01) = 3.; +uniform float base_white_size: hint_range(0.0, 10.0, 0.01) = 1.5; +uniform sampler2D gradient_base :repeat_enable; +uniform vec4 tint: source_color = vec4(0.3, 0.8, 0.5,0.0); + +group_uniforms Vertex_unis; +uniform float sway_strength = 1.2; +uniform float sway_phase_len = 1.2; +uniform float sway_speed = 1.2; + +void vertex() { + float strength = COLOR.r * sway_strength; + VERTEX.x += sin(VERTEX.x * sway_phase_len * 1.123 + TIME * sway_speed) * strength; + VERTEX.y += cos(VERTEX.y * sway_phase_len + TIME * sway_speed * 1.12412) * strength; +} + + +void fragment() { + vec2 scroll_uv = vec2(UV.x + TIME * aurora_scroll_speed, UV.y); + vec4 result = texture(TEXTURE, scroll_uv); + + //the sin is optional causes there to be more "play" of the colors + vec4 base_color = texture(gradient_base, vec2(scroll_uv.x + sin(TIME * color_scroll_speed)+.2, scroll_uv.y)); + //we subtract TIME to make the transparency mask move in the opposite direction of the aurora, looks more funky imo :3 + //also we do UV.y -.01 to get rid of a ugly 1 px wide line that would appear else wise OTL + vec4 curve = texture(lower_transparency_mask, vec2(UV.x * curve_horizontal_repition - TIME * .3, UV.y -.01 )); + + //applies the transparency of our mask texture to avoid a hard lower cutoff + result.a *= mix(result.a, 0., curve.a); + //add stronger luminance to the base of the aurora + result.rgb *= mix(result.rgb, result.rgb*base_white_size, curve.a); + + //more transparency mixing to create a more "organic" looking result + result.a *= mix(0., 1., result.r); + result.a *= mix(0,1, UV.y); + + //more funky color magic, remove/edit as needed + result.rgb *= mix(result.rgb, base_color.rgb, UV.y ); + result.rgb *= mix(result.rgb, result.rgb*glow_strength,UV.y); + result.rgb *= mix(result.rgb, result.rgb*glow_strength, curve.a); + //gives it an overall richer color + result.rgb *= tint.rgb; + + COLOR = result; +} \ No newline at end of file diff --git a/asset/shader/未使用/balatro_bg.gdshader b/asset/shader/未使用/balatro_bg.gdshader new file mode 100644 index 00000000..7ed2a397 --- /dev/null +++ b/asset/shader/未使用/balatro_bg.gdshader @@ -0,0 +1,62 @@ +// https://godotshaders.com/shader/balatro-background-shader/ +shader_type canvas_item; +//took it directly from balatro source code +//buy balatro now: https://www.playbalatro.com + +uniform highp float spin_rotation_speed = 2.0; +uniform highp float move_speed = 7.0; +uniform highp vec2 offset = vec2(0., 0.); +uniform highp vec4 colour_1 : source_color = vec4(0.871, 0.267, 0.231, 1.0); +uniform highp vec4 colour_2 : source_color = vec4(0.0, 0.42, 0.706, 1.0); +uniform highp vec4 colour_3 : source_color = vec4(0.086, 0.137, 0.145, 1.0); +uniform highp float contrast = 3.5; +uniform highp float lighting = 0.4; +uniform highp float spin_amount = 0.25; +uniform highp float pixel_filter = 740.; +uniform bool is_rotating = false; +#define SPIN_EASE 1.0 + + +vec4 effect(vec2 screenSize, vec2 screen_coords){ + + highp float pixel_size = length(screenSize.xy) / pixel_filter; + highp vec2 uv = (floor(screen_coords.xy*(1./pixel_size))*pixel_size - 0.5*screenSize.xy)/length(screenSize.xy) - offset; + highp float uv_len = length(uv); + + + highp float speed = (spin_rotation_speed*SPIN_EASE*0.2); + if(is_rotating){ + speed = TIME * speed; + } + speed += 302.2; + highp float new_pixel_angle = (atan(uv.y, uv.x)) + speed - SPIN_EASE*20.*(1.*spin_amount*uv_len + (1. - 1.*spin_amount)); + highp vec2 mid = (screenSize.xy/length(screenSize.xy))/2.; + uv = (vec2((uv_len * cos(new_pixel_angle) + mid.x), (uv_len * sin(new_pixel_angle) + mid.y)) - mid); + + uv *= 30.; + speed = TIME*(move_speed); + highp vec2 uv2 = vec2(uv.x+uv.y); + + for(int i=0; i < 5; i++) { + uv2 += sin(max(uv.x, uv.y)) + uv; + uv += 0.5*vec2(cos(5.1123314 + 0.353*uv2.y + speed*0.131121),sin(uv2.x - 0.113*speed)); + uv -= 1.0*cos(uv.x + uv.y) - 1.0*sin(uv.x*0.711 - uv.y); + } + + + highp float contrast_mod = (0.25*contrast + 0.5*spin_amount + 1.2); + highp float paint_res = min(2., max(0.,length(uv)*(0.035)*contrast_mod)); + highp float c1p = max(0.,1. - contrast_mod*abs(1.-paint_res)); + highp float c2p = max(0.,1. - contrast_mod*abs(paint_res)); + highp float c3p = 1. - min(1., c1p + c2p); + + highp float ligth = (lighting - 0.2) * max(c1p*5. - 4., 0.) + lighting * max(c2p*5. - 4., 0.); + highp vec4 ret_col = (0.3/contrast)*colour_1 + (1. - 0.3/contrast)*(colour_1*c1p + colour_2*c2p + vec4(c3p*colour_3.rgb, c3p*colour_1.a)) + ligth; + return ret_col; +} + + +void fragment() { + vec2 uv = UV; + COLOR *= effect(TEXTURE_PIXEL_SIZE, uv); +} diff --git a/asset/shader/未使用/balatro_fire.gdshader b/asset/shader/未使用/balatro_fire.gdshader new file mode 100644 index 00000000..144ef882 --- /dev/null +++ b/asset/shader/未使用/balatro_fire.gdshader @@ -0,0 +1,52 @@ +// https://godotshaders.com/shader/balatro-fire-shader/ +shader_type canvas_item; + +uniform sampler2D noise_tex : hint_default_white; +uniform vec4 bottom_color : source_color = vec4(0.0, 0.7, 1.0, 1.0); +uniform vec4 middle_color : source_color = vec4(1.0, 0.5, 0.0, 1.0); +uniform vec4 top_color : source_color = vec4(1.0, 0.03, 0.001, 1.0); +uniform float fire_alpha : hint_range(0.0, 1.0) = 1.0; +uniform vec2 fire_speed = vec2(0.0, 2.0); +uniform float fire_aperture : hint_range(0.0, 3.0) = 0.22; + +vec4 tri_color_mix(vec4 color1, vec4 color2, vec4 color3, float pos) { + pos = clamp(pos, 0.0, 1.0); + if (pos < 0.5) { + return mix(color1, color2, pos * 2.0); + } else { + return mix(color2, color3, (pos - 0.5) * 2.0); + } +} + +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; + COLOR.a = clamp(noise, 0.0, 1.0) * fire_alpha; +} \ No newline at end of file diff --git a/asset/shader/未使用/electric_ball.gdshader b/asset/shader/未使用/electric_ball.gdshader new file mode 100644 index 00000000..7f489896 --- /dev/null +++ b/asset/shader/未使用/electric_ball.gdshader @@ -0,0 +1,29 @@ +//https://godotshaders.com/shader/electric-ball-canvas-item/ + +shader_type canvas_item; +render_mode blend_add; +uniform sampler2D noise : repeat_enable; +uniform sampler2D noise2 : repeat_enable; +uniform float brightness = 2.5; +uniform float time_scale = 1.0; +void fragment() { + vec2 cc_uv = UV - vec2(.5); + float angle = atan(cc_uv.y, cc_uv.x) / PI + 1.; + float p = sqrt(dot(cc_uv, cc_uv)); + vec2 puv = vec2(p, angle * .5); + vec2 uv = puv * 2.; + float time = TIME * time_scale; + vec4 old_colo = COLOR; + COLOR = vec4(.0); + for(int i = 1; i <= 5; i++){ + float intensive = .1 + .07 * float(i); + vec2 offset = (texture(noise, vec2(time*.35*(.5+fract(sin(float(i)*55.))), angle)).rg - vec2(.5)) * intensive; + vec2 uuv = uv + offset; + float dist = abs(uuv.x - .5); + float rand_speed = .2 + .05 * fract(cos(float(i)*1144.)); + float gone = smoothstep(.1 + 0.05 * (float(i) - .5), 1.0, texture(noise2, uv + vec2(time*rand_speed)).s); + COLOR += gone * old_colo / dist * .01 * texture(noise2, uuv + vec2(time)).s; + } + vec4 light = old_colo * smoothstep(1.0, -2.0, abs(uv.x - .5) * 2.0) * texture(noise2, uv).a; + COLOR += light * brightness; +} diff --git a/asset/shader/未使用/fire_bullet.gdshader b/asset/shader/未使用/fire_bullet.gdshader new file mode 100644 index 00000000..019fb8c7 --- /dev/null +++ b/asset/shader/未使用/fire_bullet.gdshader @@ -0,0 +1,49 @@ +//https://godotshaders.com/shader/fireball-fire-ball-with-light/ +shader_type canvas_item; +render_mode blend_add; +uniform float s_scale_y = 1.0; +uniform float l_s_scale_y = 1.0; +uniform float lness = 1.0; +uniform float lness2 = .0; +uniform sampler2D noise : repeat_enable, filter_nearest_mipmap_anisotropic; +uniform sampler2D noise2 : repeat_enable, filter_nearest_mipmap_anisotropic; +uniform sampler2D colo_curve; + +vec4 f1(vec2 uv, float time){ + vec4 nv2 = texture(noise, uv + vec2(time, 0.0)); + vec4 n2v2 = texture(noise2, uv + vec2(time*.8, 0.0)); + nv2.a = max(0., nv2.a + uv.x - 1.0); + n2v2.a = max(0., n2v2.a + uv.x - 1.0); + return nv2 * n2v2; +} + +void fragment() +{ + vec2 mUV = UV * 4. - 1.5; + vec2 uv = mUV * vec2(1., s_scale_y); + float time = TIME; + vec2 cuv = mUV - vec2(.5); + float d2c = length(cuv); + vec4 color = COLOR; + // + color *= (f1(uv, time) + f1(uv + vec2(.1,0.), time+11.514) + f1(uv+vec2(.05,0.), time+14.14)); + + color.a -= 1.0; + color.a = - pow(color.a, 2.0) + 1.0; + // + color.rgb = texture(colo_curve, vec2(color.a,0.)).rgb; + float randmoo = texture(noise2, mUV + vec2(time, -time)).a; + randmoo = mix(randmoo, 0., mUV.x); + color.a *= smoothstep(.5, .48 - (.2 - min(mUV.x, 1.0)*.2), d2c + randmoo * 0.4); + COLOR = color; + COLOR.rgb = mix(COLOR.rgb, vec3(.0), smoothstep(0.00001, 0.0, color.a)); + // light + float d2c_l = length(UV * vec2(1., l_s_scale_y) - vec2(.58, .5*l_s_scale_y)); + float l = - log(d2c_l + lness2) * lness; + float randmoo2 = texture(noise2, vec2(time, -time)).a; + + COLOR += texture(colo_curve, vec2(1.0-d2c_l - .1*randmoo2, 0.0)) * l; + //COLOR += vec4(.8, .8, .6, 1.0) * l; + // + COLOR.a *= smoothstep(0.5, 0.1, length(UV - vec2(.5))); +} diff --git a/asset/shader/未使用/fireball.gdshader b/asset/shader/未使用/fireball.gdshader new file mode 100644 index 00000000..37977321 --- /dev/null +++ b/asset/shader/未使用/fireball.gdshader @@ -0,0 +1,51 @@ +//https://godotshaders.com/shader/ball-of-fire/ + +shader_type canvas_item; + +uniform float time : hint_range(0.0, 10.0); + +float snoise(vec3 uv, float res) +{ + const vec3 s = vec3(1e0, 1e2, 1e3); + uv *= res; + + vec3 uv0 = floor(mod(uv, res)) * s; + vec3 uv1 = floor(mod(uv + vec3(1.0), res)) * s; + + vec3 f = fract(uv); + f = f * f * (3.0 - 2.0 * f); + + vec4 v = vec4(uv0.x + uv0.y + uv0.z, uv1.x + uv0.y + uv0.z, + uv0.x + uv1.y + uv0.z, uv1.x + uv1.y + uv0.z); + + vec4 r = fract(sin(v * 1e-1) * 1e3); + float r0 = mix(mix(r.x, r.y, f.x), mix(r.z, r.w, f.x), f.y); + + r = fract(sin((v + uv1.z - uv0.z) * 1e-1) * 1e3); + float r1 = mix(mix(r.x, r.y, f.x), mix(r.z, r.w, f.x), f.y); + + return mix(r0, r1, f.z) * 2.0 - 1.0; +} + +void fragment() +{ + // Calcular las coordenadas de la pantalla usando SCREEN_PIXEL_SIZE + vec2 screen_size = vec2(1.0 / SCREEN_PIXEL_SIZE.x, 1.0 / SCREEN_PIXEL_SIZE.y); + vec2 fragCoord = FRAGCOORD.xy; + + vec2 p = -0.5 + fragCoord.xy / screen_size; + p.x *= screen_size.x / screen_size.y; + + float color = 3.0 - (3.0 * length(2.0 * p)); + + vec3 coord = vec3(atan(p.x, p.y) / 6.2832 + 0.5, length(p) * 0.4, 0.5); + + // if you dont want use gdscript to animate you can replace the 'time' to 'TIME' + for (int i = 1; i <= 7; i++) + { + float power = pow(2.0, float(i)); + color += (1.5 / power) * snoise(coord + vec3(0.0, -time * 0.05, time * 0.01), power * 16.0); + } + + COLOR = vec4(color, pow(max(color, 0.0), 2.0) * 0.4, pow(max(color, 0.0), 3.0) * 0.15, 1.0); +} diff --git a/asset/shader/未使用/highlight.gdshader b/asset/shader/未使用/highlight.gdshader new file mode 100644 index 00000000..ee8f5104 --- /dev/null +++ b/asset/shader/未使用/highlight.gdshader @@ -0,0 +1,83 @@ +// https://godotshaders.com/shader/highlight-canvasitem/ +shader_type canvas_item; +//Color is controlled by the object itself, change the color property of the ColorRect to change the highlight +// if the shader is applyed to the texture element, then the texture will be clipped by the highlight +render_mode blend_premul_alpha; + +// makes the highlight edges softer, 0 = hard edges; +uniform float Line_Smoothness : hint_range(0, 0.1) = 0.045; +// makes line thiner/wider, 0 = thin line; +uniform float Line_Width : hint_range(0, 0.2) = 0.09; +//multiplicative parameter, that makes the line more visible, +// diffirent combinations of Line Smoothness, Line Width and Brightness produces various results; +uniform float Brightness = 3.0; +// rotates the highlight, incrementing the value rotates the highlight clockwise; +uniform float Rotation_deg : hint_range(-90, 90) = 30; +// merges line with the edges of the ColorRect (see ColorRect in How to use section); +uniform float Distortion : hint_range(1, 2) = 1.8; +// dictates how fast the effect is moving from one side to the opposite; +uniform float Speed = 0.7; +// manual placement of the highlight line, 0 = Position Min, 1 = Position Max; +uniform float Position : hint_range(0, 1) = 0; +// starting point of the highlight line; +uniform float Position_Min = 0.25; +// end point of the highlight line; +uniform float Position_Max = 0.5; +// controls the overall visibility of the highlight; +uniform float Alpha : hint_range(0, 1) = 1; + +vec2 rotate_uv(vec2 uv, vec2 center, float rotation, bool use_degrees){ + float _angle = rotation; + if(use_degrees){ + _angle = rotation * (3.1415926/180.0); + } + mat2 _rotation = mat2( + vec2(cos(_angle), -sin(_angle)), + vec2(sin(_angle), cos(_angle)) + ); + vec2 _delta = uv - center; + _delta = _rotation * _delta; + return _delta + center; + } + +void fragment() { + + vec2 center_uv = UV - vec2(0.5, 0.5); + float gradient_to_edge = max(abs(center_uv.x), abs(center_uv.y)); + gradient_to_edge = gradient_to_edge * Distortion; + gradient_to_edge = 1.0 - gradient_to_edge; + vec2 rotaded_uv = rotate_uv(UV, vec2(0.5, 0.5), Rotation_deg, true); + + float remapped_position; + { + float output_range = Position_Max - Position_Min; + remapped_position = Position_Min + output_range * Position; + } + + float remapped_time = TIME * Speed + remapped_position; + remapped_time = fract(remapped_time); + { + float output_range = 2.0 - (-2.0); + remapped_time = -2.0 + output_range * remapped_time; + } + + vec2 offset_uv = vec2(rotaded_uv.xy) + vec2(remapped_time, 0.0); + float line = vec3(offset_uv, 0.0).x; + line = abs(line); + line = gradient_to_edge * line; + line = sqrt(line); + + float line_smoothness = clamp(Line_Smoothness, 0.001, 1.0); + float offset_plus = Line_Width + line_smoothness; + float offset_minus = Line_Width - line_smoothness; + + float remapped_line; + { + float input_range = offset_minus - offset_plus; + remapped_line = (line - offset_plus) / input_range; + } + remapped_line = remapped_line * Brightness; + remapped_line = min(remapped_line, Alpha); + COLOR.rgb = vec3(COLOR.xyz) * vec3(remapped_line); + COLOR.a = remapped_line; +} diff --git a/asset/shader/未使用/ripple.gdshader b/asset/shader/未使用/ripple.gdshader new file mode 100644 index 00000000..160513ae --- /dev/null +++ b/asset/shader/未使用/ripple.gdshader @@ -0,0 +1,43 @@ +//https://godotshaders.com/shader/transparent-ripples/ +// Attach to a ColorRect in front of texture/background + +shader_type canvas_item; + +// Handles the concentric ripples +uniform float frequency: hint_range(0, 15, 0.01) = 4.0; +uniform float amplitude: hint_range(0, 3, 0.1) = 2.0; +uniform float ripple_rate : hint_range(0, 20.0, 1) = 5; + +// Handles the waves themselves +uniform float wave_amplitude: hint_range(0.001, 0.1, 0.001) = 0.05; +uniform float wave_frequency: hint_range(0, 15, 0.01) = 4.0; + +uniform sampler2D noise; + +uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap; + +vec2 wave(vec2 uv, float time) { + return vec2( + uv.x + sin(uv.y * wave_frequency + time) * wave_amplitude, + uv.y + sin(uv.x * wave_frequency + time) * wave_amplitude + ); +} + +void fragment() { + vec2 center_position = -1.0 + 2.0 * UV / (1.0 / TEXTURE_PIXEL_SIZE); + float center_distance = length(center_position); + + float ripple = sin(center_distance * -frequency * PI + ripple_rate * TIME) * amplitude / (center_distance + 1.0); + + vec2 uv = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).xy + (center_position/center_distance) * ripple * wave_amplitude; + vec2 background_wave = wave(uv, TIME); + vec4 background_texture = texture(SCREEN_TEXTURE,background_wave) * sqrt(amplitude); + + float alpha_scalar = (1.0 - min(center_distance, 1.0)) * background_texture.x * 2.5; + + background_texture.a *= 1.0 * alpha_scalar * (ripple + background_texture.x * background_texture.y); + background_texture.a = max(background_texture.a - (background_texture.y * 0.45), 0.0); + + COLOR = vec4(background_texture.xyz, background_texture.a); + +} \ No newline at end of file diff --git a/asset/shader/未使用/tube_with_balls.gdshader b/asset/shader/未使用/tube_with_balls.gdshader new file mode 100644 index 00000000..946d016d --- /dev/null +++ b/asset/shader/未使用/tube_with_balls.gdshader @@ -0,0 +1,31 @@ +//https://godotshaders.com/shader/weird-tube-with-balls/ +shader_type canvas_item; + +uniform float whiteness = 0.0; + +uniform float l = 100.0; +uniform float balls[16]; +uniform float basic_wid_s = .1; + +float my_smooth(float a, float b, float v) { + return smoothstep(a, b, v) * .2 + smoothstep(a * 2., b, v)*.2 + smoothstep(a * 5., b, v)*.3; +} + +void fragment() { + COLOR = vec4(vec3(1.), smoothstep(basic_wid_s, basic_wid_s-.01, 2. * abs(UV.y - .5))); + float closeness = 0.0; + for(int i = 0; i < balls.length(); i++) { + float offset = balls[i]; + float edge_shrink = smoothstep(0.0, .01, offset) * smoothstep(1.0, 0.99, offset); + closeness += my_smooth(.1 / l * 255.0 * edge_shrink, .0, abs(UV.x - offset)) + / (float(balls.length()) + float(i)) * edge_shrink; + //COLOR += vec4(vec3(1.), closeness * smoothstep(.4, .0, 2. * abs(UV.y - .5))); + } + closeness = smoothstep(0.0, 1.0, .7 + closeness * .4) - smoothstep(0.0, 1.0, .7); + closeness *= 2.2; + float edge_shrink_t = smoothstep(- 0.02, .035, UV.x) * smoothstep(1.02, 0.965, UV.x); + closeness *= edge_shrink_t; + float a = smoothstep(closeness, -0.0001, 2. * abs(UV.y - .5)); + a = smoothstep(.0, .2, a); + COLOR += vec4(vec3(1.), a); +} diff --git a/scene/entity/portal.gd b/scene/entity/portal.gd index bd64598a..cdc1b5c6 100644 --- a/scene/entity/portal.gd +++ b/scene/entity/portal.gd @@ -6,7 +6,7 @@ class_name Portal2D extends Sprite2D set(val): enabled = val _check_sign_mark_and_texture() -@export var immediately := true +@export var immediately := false @export_enum("left", "right", "1", "2", "3", "4", "5", "6", "7", "8", "9") var portal_name := "left": set(value): #if portal_name: diff --git a/scene/ground/ground.gd b/scene/ground/ground.gd index 354fc42e..dc0071a2 100644 --- a/scene/ground/ground.gd +++ b/scene/ground/ground.gd @@ -138,7 +138,8 @@ func play_footstep_sound() -> void: func move_player_to_portal(portal_name: String) -> void: - var portal_node = get_node_or_null("DeployLayer/portal_" + portal_name) as Node2D + var node_path = NodePath("DeployLayer/portal_" + portal_name) + var portal_node = get_node_or_null(node_path) as Portal2D if portal_node and player: player.global_position.x = portal_node.global_position.x if portal_name == "left": @@ -148,7 +149,9 @@ func move_player_to_portal(portal_name: String) -> void: _reset_player_y() if GlobalConfig.DEBUG: print("move player to portal:", portal_name, portal_node.global_position) + elif player: + printerr(scene_name, " portal not found: ", node_path) else: - printerr(scene_name + " portal not found: " + portal_name) + printerr("move_player_to_portal player not ready") # 传送后,重置 camera 位置 camera_focus_marker.reset_position_immediately() diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index a46d851e..0b14a90d 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -66,6 +66,7 @@ portal_name = "1" [node name="portal_2" parent="Ground/DeployLayer" index="3" instance=ExtResource("4_ulvsd")] position = Vector2(995, 28) debug_note = "c01_s07 的 2 号门通往书店" +immediately = false portal_name = "2" target_scene = "c01_s08" target_portal = "left" diff --git a/scene/ground/scene/c01/s08_animation.gd b/scene/ground/scene/c01/s08_animation.gd index ba292dba..9698299b 100644 --- a/scene/ground/scene/c01/s08_animation.gd +++ b/scene/ground/scene/c01/s08_animation.gd @@ -22,11 +22,10 @@ func _on_ground_ready() -> void: mask = $"../DeployLayer/Mask" var shelf_game_success = ArchiveManager.archive.get_global_value("shelf_game_success") if shelf_game_success: - # 书架游戏成功后,展示诡异的街道 - _set_portal_target_to_wierd_street() + _on_game_success() -var game_secne = preload("res://scene/little_game/书架.tscn") +var game_secne = preload("res://scene/little_game/书架/书架.tscn") var game_node = game_secne.instantiate() @@ -52,11 +51,12 @@ func _on_game_exiting() -> void: func _on_game_success() -> void: ArchiveManager.archive.set_global_entry("shelf_game_success", true) _set_portal_target_to_wierd_street() - #TODO: 书架游戏成功后的处理 + # 书架游戏成功后,展示老鼠 + $"../DeployLayer/自动跟随的老鼠".visible = true func _set_portal_target_to_wierd_street() -> void: # 设置传送门目标为诡异的街道 var portal = $"../DeployLayer/portal_left" as Portal2D - portal.target_scene = "c01_s07" - portal.target_portal = "portal_2" \ No newline at end of file + portal.target_scene = "c01_s12" + portal.target_portal = "2" diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index c4d45063..55fcd44b 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=7 format=3 uid="uid://cwu4dhayra8pg"] +[gd_scene load_steps=8 format=3 uid="uid://cwu4dhayra8pg"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_b3cca"] [ext_resource type="Script" path="res://scene/ground/scene/c01/s08_animation.gd" id="2_0lque"] [ext_resource type="Texture2D" uid="uid://coo8sw8yigii6" path="res://asset/art/scene/c01/s08_书店/bg_书店.png" id="3_322m4"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="4_c4lg5"] [ext_resource type="Texture2D" uid="uid://cqy0qfmko00rx" path="res://asset/art/scene/c01/s08_书店/e_梯子.png" id="5_tnrke"] +[ext_resource type="PackedScene" uid="uid://nwpbl5yuh280" path="res://scene/ground/script/c01/s00_自动跟随的老鼠.tscn" id="6_05do1"] [ext_resource type="Texture2D" uid="uid://c3ii6vsja0645" path="res://asset/art/scene/c01/s08_书店/书店参考.png" id="6_l2q02"] [node name="S08" type="Node2D"] @@ -29,7 +30,6 @@ target_scene = "c01_s07" target_portal = "2" [node name="portal_right" parent="Ground/DeployLayer" index="1"] -immediately = false target_scene = "c02_s08" [node name="Ambush梯子" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_c4lg5")] @@ -55,6 +55,10 @@ grow_vertical = 2 mouse_filter = 2 color = Color(0, 0, 0, 0) +[node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_05do1")] +position = Vector2(-8, 88) +action_area = Vector2(600, 32) + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(41, 98) character = "小小蝶" diff --git a/scene/ground/scene/c01/s12_animation.gd b/scene/ground/scene/c01/s12_animation.gd index 222ba1ec..fdfffd01 100644 --- a/scene/ground/scene/c01/s12_animation.gd +++ b/scene/ground/scene/c01/s12_animation.gd @@ -19,9 +19,11 @@ var ghost func _on_ground_ready() -> void: ghost = $"../DeployLayer/Ghost" # test - call_deferred("_ghost_move") + # call_deferred("_ghost_move") func _ghost_move() -> void: + ghost.visible = true + ghost.play() var tween = create_tween() tween.tween_property(ghost, "global_position", Vector2(1500, 0), 20.0).as_relative() diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.tscn b/scene/ground/scene/c01/s12_书店外_诡异版.tscn index a4bad669..ed3d4736 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.tscn +++ b/scene/ground/scene/c01/s12_书店外_诡异版.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://bol5hl68pbpgq"] +[gd_scene load_steps=13 format=3 uid="uid://bol5hl68pbpgq"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_llw14"] [ext_resource type="Script" path="res://scene/ground/scene/c01/s12_animation.gd" id="2_krdvw"] @@ -11,6 +11,7 @@ [ext_resource type="PackedScene" uid="uid://ci34db7xool2n" path="res://scene/ground/script/c01/s01_自动枯萎的花朵.tscn" id="7_aq8vg"] [ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/shading/ghost.tscn" id="8_gk0gq"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_nqlku"] +[ext_resource type="PackedScene" uid="uid://nwpbl5yuh280" path="res://scene/ground/script/c01/s00_自动跟随的老鼠.tscn" id="12_qpv8m"] [node name="S12" type="Node2D"] @@ -31,7 +32,6 @@ texture = ExtResource("3_npdxo") offset = Vector2(0, -158) [node name="portal_right" parent="Ground/DeployLayer" index="1"] -immediately = false target_scene = "c02_s08" [node name="portal_2" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_o7hfk")] @@ -53,12 +53,18 @@ position = Vector2(36, 81) focus_node = NodePath("../Ghost") [node name="Ghost" parent="Ground/DeployLayer" index="5" instance=ExtResource("8_gk0gq")] +visible = false z_index = 10 -position = Vector2(-159, 23) +position = Vector2(-158, 23) +autoplay = "" [node name="Ambush玩家被抓" parent="Ground/DeployLayer/Ghost" instance=ExtResource("9_nqlku")] freeze_time = 0.1 +[node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="6" instance=ExtResource("12_qpv8m")] +position = Vector2(-7, 80) +action_area = Vector2(1550, 40) + [node name="Light" parent="Ground/AmbientLayer" index="0" instance=ExtResource("5_kywnm")] position = Vector2(999, -5) texture = null diff --git a/scene/ground/scene/c02/s01_街道.tscn b/scene/ground/scene/c02/s01_街道.tscn index 1ad6e0ca..f1557d58 100644 --- a/scene/ground/scene/c02/s01_街道.tscn +++ b/scene/ground/scene/c02/s01_街道.tscn @@ -24,11 +24,13 @@ texture = ExtResource("2_ni1a4") [node name="portal_left" parent="Ground/DeployLayer" index="0"] position = Vector2(78, 27) +immediately = true [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(392, 2) target_scene = "c02_s02" target_portal = "left" +status = "opened" [node name="Note寻人启事" parent="Ground/DeployLayer" index="2" instance=ExtResource("3_6lnxd")] position = Vector2(250, -22) diff --git a/scene/ground/scene/c02/s03_院子_黄昏无人.tscn b/scene/ground/scene/c02/s03_院子_黄昏无人.tscn index 29591a5b..5165476d 100644 --- a/scene/ground/scene/c02/s03_院子_黄昏无人.tscn +++ b/scene/ground/scene/c02/s03_院子_黄昏无人.tscn @@ -51,6 +51,7 @@ position = Vector2(2286, 16) [node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_00b7a")] position = Vector2(193, 14) debug_note = "1012保卫科" +immediately = false portal_name = "1" target_scene = "c02_s05" target_portal = "left" diff --git a/scene/ground/script/c01/s00_自动跟随的老鼠.gd b/scene/ground/script/c01/s00_自动跟随的老鼠.gd index 07e60180..4a98ec2b 100644 --- a/scene/ground/script/c01/s00_自动跟随的老鼠.gd +++ b/scene/ground/script/c01/s00_自动跟随的老鼠.gd @@ -75,7 +75,7 @@ func _init_mice(scatter := scatter_on_start) -> void: func _physics_process(delta: float) -> void: - if Engine.is_editor_hint() or not enabled: + if Engine.is_editor_hint() or not enabled or not visible: return if not player: player = SceneManager.get_player() diff --git a/scene/ground/script/c01/s12_飘动的寻人启事.gd b/scene/ground/script/c01/s12_飘动的寻人启事.gd index a6c34448..3b4f83db 100644 --- a/scene/ground/script/c01/s12_飘动的寻人启事.gd +++ b/scene/ground/script/c01/s12_飘动的寻人启事.gd @@ -2,15 +2,7 @@ extends Node2D @export var velocity := 0.1 -@export var remote_node: Node2D: - set(val): - remote_node = val - if is_node_ready(): - if remote_node: - remote_transform.remote_path = remote_node.get_path() - else: - remote_transform.remote_path = "" - +@export var remote_node: Node2D @export var area_size := Vector2(400, 50): set(val): area_size = val @@ -20,11 +12,10 @@ extends Node2D gizmo_outline_color = val queue_redraw() -@onready var remote_transform := $RemoteTransform2D as RemoteTransform2D +@onready var sprite_frames := $Sprite2D as Sprite2D func _draw() -> void: - remote_transform.remote_path = remote_node.get_path() if Engine.is_editor_hint(): # draw gizmo var area_rect = Rect2(Vector2.ZERO, area_size) @@ -100,7 +91,7 @@ func _rand_point() -> Vector2: # 设置到 remote_transform 的 position 与 rotation # 速度为 velocity,权重为 weight func _process(delta: float) -> void: - if Engine.is_editor_hint(): + if Engine.is_editor_hint() or not remote_node: return weight += velocity * delta if weight >= 1.0: @@ -114,6 +105,7 @@ func _process(delta: float) -> void: var p = p1.cubic_interpolate(p2, p0, p3, weight) # var p = p1.bezier_interpolate(p0, p3, p2, weight) - remote_transform.position = p + remote_node.position = p # bezier 插值获得角度 - remote_transform.rotation = lerp_angle(remote_transform.rotation, p1.angle_to(p2), delta) + remote_node.rotation = lerp_angle(remote_node.rotation, p1.angle_to(p2), delta) + remote_node.skew = -remote_node.rotation * 0.5 diff --git a/scene/ground/script/c01/s12_飘动的寻人启事.tscn b/scene/ground/script/c01/s12_飘动的寻人启事.tscn index 477f537d..1cf31ad8 100644 --- a/scene/ground/script/c01/s12_飘动的寻人启事.tscn +++ b/scene/ground/script/c01/s12_飘动的寻人启事.tscn @@ -1,7 +1,14 @@ -[gd_scene load_steps=3 format=3 uid="uid://cn1ypquvs07wx"] +[gd_scene load_steps=5 format=3 uid="uid://cn1ypquvs07wx"] [ext_resource type="Script" path="res://scene/ground/script/c01/s12_飘动的寻人启事.gd" id="1_like6"] -[ext_resource type="Texture2D" uid="uid://cx8ny1barwdwy" path="res://asset/art/临时草稿/纸片.png" id="2_46pmx"] +[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"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_q4vn8"] +shader = ExtResource("2_2w1m2") +shader_parameter/center = Vector2(25, 25) +shader_parameter/amplitude = 0.15 +shader_parameter/frequency = 1.5 [node name="S12" type="Node2D" node_paths=PackedStringArray("remote_node")] position = Vector2(43, 96) @@ -10,9 +17,6 @@ velocity = 0.4 remote_node = NodePath("Sprite2D") area_size = Vector2(500, 150) -[node name="RemoteTransform2D" type="RemoteTransform2D" parent="."] -remote_path = NodePath("/root/@EditorNode@16896/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9280/@VSplitContainer@9102/@HSplitContainer@9104/@HSplitContainer@9106/@Control@9107/@SubViewportContainer@9108/@SubViewport@9109/S12/Sprite2D") -update_scale = false - [node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("2_46pmx") +material = SubResource("ShaderMaterial_q4vn8") +texture = ExtResource("3_dl751") diff --git a/scene/little_game/书架.gd b/scene/little_game/书架/书架.gd similarity index 100% rename from scene/little_game/书架.gd rename to scene/little_game/书架/书架.gd diff --git a/scene/little_game/书架.tscn b/scene/little_game/书架/书架.tscn similarity index 99% rename from scene/little_game/书架.tscn rename to scene/little_game/书架/书架.tscn index d46367a9..f9fc199d 100644 --- a/scene/little_game/书架.tscn +++ b/scene/little_game/书架/书架.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=54 format=3 uid="uid://fwfr0b2sylwx"] -[ext_resource type="Script" path="res://scene/little_game/书架.gd" id="1_8af23"] +[ext_resource type="Script" path="res://scene/little_game/书架/书架.gd" id="1_8af23"] [ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_03tyv"] [ext_resource type="AudioStream" uid="uid://bi4hcr04231qr" path="res://asset/audio/sfx/ui/挂画查看.mp3" id="3_elhhm"] [ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/ui/物品查看.mp3" id="4_0ihy7"] diff --git a/scene/little_game/书架/生死簿.tscn b/scene/little_game/书架/生死簿.tscn new file mode 100644 index 00000000..5133465f --- /dev/null +++ b/scene/little_game/书架/生死簿.tscn @@ -0,0 +1,7 @@ +[gd_scene format=3 uid="uid://bl5pohc77hi43"] + +[node name="生死簿" type="Node2D"] + +[node name="p1" type="Sprite2D" parent="."] + +[node name="p2" type="Sprite2D" parent="."] diff --git a/scene/little_game/拼凑信件.gd b/scene/little_game/拼凑信件.gd index e407cc20..55d990db 100644 --- a/scene/little_game/拼凑信件.gd +++ b/scene/little_game/拼凑信件.gd @@ -4,6 +4,7 @@ extends CanvasLayer @onready var whole = %Whole as Sprite2D # from part 0 to 3, rotated by 0, 90, 180, 270 degrees var rotations = [0, 0, 0, 0] +var images = [] var selected := 0: set(value): @@ -16,6 +17,7 @@ func _ready() -> void: for i in range(4): var part = container.get_child(i) part.pressed.connect(_select_part.bind(part)) + images.append(part.texture_normal.get_image()) _shuffle() _display_selected() whole.visible = false @@ -40,9 +42,8 @@ func _rotate_part(direction := 1) -> void: var part = container.get_child(selected) as TextureButton var id = int(str(part.name)) rotations[id] = wrapi(rotations[id] + direction, 0, 4) - var image = part.texture_normal.get_image() - image.rotate_90(direction) - part.texture_normal = ImageTexture.create_from_image(image) + images[id].rotate_90(direction) + part.texture_normal = ImageTexture.create_from_image(images[id]) func _shuffle() -> void: @@ -55,7 +56,7 @@ func _shuffle() -> void: for i in range(4): selected = i for j in range(randi() % 4): - _rotate_part(1) + _rotate_part() selected = 0 diff --git a/scene/shading/ghost.tscn b/scene/shading/ghost.tscn index 0560d614..c941d3b5 100644 --- a/scene/shading/ghost.tscn +++ b/scene/shading/ghost.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=5 format=3 uid="uid://h0s5ms7r7d8g"] +[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://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="2_y00i5"] +[ext_resource type="Texture2D" uid="uid://wvnpr0w3srtr" path="res://asset/art/临时草稿/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"] @@ -12,10 +12,41 @@ shader_parameter/shake_speed = 6.0 shader_parameter/shake_block_size = 5.0 shader_parameter/shake_color_rate = 0.005 -[node name="Ghost" type="Sprite2D"] +[sub_resource type="AtlasTexture" id="AtlasTexture_vaq88"] +atlas = ExtResource("2_vp102") +region = Rect2(0, 0, 256, 256) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mh23v"] +atlas = ExtResource("2_vp102") +region = Rect2(256, 0, 256, 256) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5x2re"] +atlas = ExtResource("2_vp102") +region = Rect2(512, 0, 256, 256) + +[sub_resource type="SpriteFrames" id="SpriteFrames_fqswq"] +animations = [{ +"frames": [{ +"duration": 3.0, +"texture": SubResource("AtlasTexture_vaq88") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mh23v") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_5x2re") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="Ghost" type="AnimatedSprite2D"] material = SubResource("ShaderMaterial_fv2fx") -position = Vector2(135, 130) -texture = ExtResource("2_y00i5") +position = Vector2(135, 129) +sprite_frames = SubResource("SpriteFrames_fqswq") +autoplay = "default" +frame_progress = 0.983059 [node name="BackBufferCopy" type="BackBufferCopy" parent="."] copy_mode = 2