生死簿演出效果
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://wvnpr0w3srtr"
|
uid="uid://wvnpr0w3srtr"
|
||||||
path="res://.godot/imported/ghost-sheet.png-b0ae6f2c371a730d2abf0df2867d0094.ctex"
|
path="res://.godot/imported/ghost-sheet.png-fd0ed1a0a1580aa9bba0ac20527fbdcd.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/临时草稿/ghost-sheet.png"
|
source_file="res://asset/art/临时草稿/c01_序章/ghost-sheet.png"
|
||||||
dest_files=["res://.godot/imported/ghost-sheet.png-b0ae6f2c371a730d2abf0df2867d0094.ctex"]
|
dest_files=["res://.godot/imported/ghost-sheet.png-fd0ed1a0a1580aa9bba0ac20527fbdcd.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dryx1iyict3gd"
|
uid="uid://dryx1iyict3gd"
|
||||||
path="res://.godot/imported/ghost.png-be8d53dbf62bca42bbf3c61f27140309.ctex"
|
path="res://.godot/imported/ghost.png-68c970ef18f4992531a7fb7b8fd05408.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/临时草稿/ghost.png"
|
source_file="res://asset/art/临时草稿/c01_序章/ghost.png"
|
||||||
dest_files=["res://.godot/imported/ghost.png-be8d53dbf62bca42bbf3c61f27140309.ctex"]
|
dest_files=["res://.godot/imported/ghost.png-68c970ef18f4992531a7fb7b8fd05408.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 926 B After Width: | Height: | Size: 926 B |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cx8ny1barwdwy"
|
uid="uid://cx8ny1barwdwy"
|
||||||
path="res://.godot/imported/纸片.png-a8bd0177d01abb04bca508d0a6f52ec4.ctex"
|
path="res://.godot/imported/纸片.png-9104f73d086c6ee0e16c1ef27489823e.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/临时草稿/纸片.png"
|
source_file="res://asset/art/临时草稿/c01_序章/纸片.png"
|
||||||
dest_files=["res://.godot/imported/纸片.png-a8bd0177d01abb04bca508d0a6f52ec4.ctex"]
|
dest_files=["res://.godot/imported/纸片.png-9104f73d086c6ee0e16c1ef27489823e.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 955 B After Width: | Height: | Size: 955 B |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c6vi6umco6o0a"
|
uid="uid://c6vi6umco6o0a"
|
||||||
path="res://.godot/imported/纸片_正面.png-42b654938cd8738cd210ea618ad1b29d.ctex"
|
path="res://.godot/imported/纸片_正面.png-b3eff97e26be42ec2e9fc396225adbb2.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/临时草稿/纸片_正面.png"
|
source_file="res://asset/art/临时草稿/c01_序章/纸片_正面.png"
|
||||||
dest_files=["res://.godot/imported/纸片_正面.png-42b654938cd8738cd210ea618ad1b29d.ctex"]
|
dest_files=["res://.godot/imported/纸片_正面.png-b3eff97e26be42ec2e9fc396225adbb2.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
asset/art/临时草稿/生死簿/生死簿.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
34
asset/art/临时草稿/生死簿/生死簿.png.import
Normal file
@ -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
|
BIN
asset/art/临时草稿/生死簿/生死簿名字.png
Normal file
After Width: | Height: | Size: 902 B |
34
asset/art/临时草稿/生死簿/生死簿名字.png.import
Normal file
@ -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
|
BIN
asset/art/临时草稿/生死簿/陆小蝶名字.png
Normal file
After Width: | Height: | Size: 627 B |
34
asset/art/临时草稿/生死簿/陆小蝶名字.png.import
Normal file
@ -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
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
https://godotshaders.com/shader/glitch-effect-shader-for-godot-engine-4/
|
https://godotshaders.com/shader/glitch-effect-shader-for-godot-engine-4/
|
||||||
|
|
||||||
Glitch Effect Shader by Yui Kinomoto @arlez80
|
Glitch Effect Shader by Yui Kinomoto @arlez80
|
||||||
MIT License
|
MIT License
|
||||||
*/
|
*/
|
||||||
|
@ -21,30 +21,30 @@ vec4 tri_color_mix(vec4 color1, vec4 color2, vec4 color3, float pos) {
|
|||||||
void fragment() {
|
void fragment() {
|
||||||
// Scale UVs to make the noise more visible
|
// Scale UVs to make the noise more visible
|
||||||
vec2 base_uv = UV * 1.0;
|
vec2 base_uv = UV * 1.0;
|
||||||
|
|
||||||
// Create two layers of noise with different speeds
|
// Create two layers of noise with different speeds
|
||||||
vec2 shifted_uv1 = base_uv + TIME * fire_speed;
|
vec2 shifted_uv1 = base_uv + TIME * fire_speed;
|
||||||
vec2 shifted_uv2 = base_uv + TIME * fire_speed * 1.5;
|
vec2 shifted_uv2 = base_uv + TIME * fire_speed * 1.5;
|
||||||
|
|
||||||
// Sample noise texture twice
|
// Sample noise texture twice
|
||||||
float fire_noise1 = texture(noise_tex, fract(shifted_uv1)).r;
|
float fire_noise1 = texture(noise_tex, fract(shifted_uv1)).r;
|
||||||
float fire_noise2 = texture(noise_tex, fract(shifted_uv2)).r;
|
float fire_noise2 = texture(noise_tex, fract(shifted_uv2)).r;
|
||||||
|
|
||||||
// Combine the noise samples
|
// Combine the noise samples
|
||||||
float combined_noise = (fire_noise1 + fire_noise2) * 0.5;
|
float combined_noise = (fire_noise1 + fire_noise2) * 0.5;
|
||||||
|
|
||||||
// Calculate fire shape
|
// Calculate fire shape
|
||||||
float noise = UV.y * (((UV.y + fire_aperture) * combined_noise - fire_aperture) * 75.0);
|
float noise = UV.y * (((UV.y + fire_aperture) * combined_noise - fire_aperture) * 75.0);
|
||||||
|
|
||||||
// Add horizontal movement
|
// Add horizontal movement
|
||||||
noise += sin(UV.y * 10.0 + TIME * 2.0) * 0.1;
|
noise += sin(UV.y * 10.0 + TIME * 2.0) * 0.1;
|
||||||
|
|
||||||
// Calculate gradient position and mix three colors
|
// Calculate gradient position and mix three colors
|
||||||
float gradient_pos = clamp(noise * 0.08, 0.3, 2.0);
|
float gradient_pos = clamp(noise * 0.08, 0.3, 2.0);
|
||||||
//vec4 smoth_mid_color = smoothstep(top_color, middle_color, vec4(1));
|
//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);
|
vec4 fire_color = tri_color_mix(bottom_color, middle_color, top_color, gradient_pos);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Set final color and alpha
|
// Set final color and alpha
|
||||||
COLOR = fire_color;
|
COLOR = fire_color;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" path="res://scene/ground/script/c01/s12_飘动的寻人启事.gd" id="1_like6"]
|
[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="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"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_q4vn8"]
|
||||||
shader = ExtResource("2_2w1m2")
|
shader = ExtResource("2_2w1m2")
|
||||||
|
10
scene/little_game/书架/生死簿.gd
Normal file
@ -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)
|
@ -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")
|
||||||
|
58
scene/little_game/书架/陆小蝶名字.gd
Normal file
@ -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)
|
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=9 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="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"]
|
[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"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"]
|
||||||
|