loading 动效

master
chendian 2 years ago
parent 4020a3d8d8
commit 9ed6dd8b42

@ -0,0 +1,23 @@
shader_type canvas_item;
uniform vec4 in_color:source_color;
uniform float position:hint_range(-2,1.) = 0.856;
uniform vec2 size = vec2(32., 32.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = abs(center.x)+abs(center.y);
circle = 1. - step(wave,circle);
COLOR=vec4(circle) * in_color;
}

@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://126wph4owvoy"]
[gd_scene load_steps=16 format=3 uid="uid://126wph4owvoy"]
[ext_resource type="Texture2D" uid="uid://cwhu1ec03t3c8" path="res://resource/ui/hud/headbar_hp_empty.png" id="1_flgf6"]
[ext_resource type="Script" path="res://script/ui/hud/hud_page.gd" id="1_t7dgf"]
@ -8,6 +8,7 @@
[ext_resource type="Texture2D" uid="uid://xogtpwyb862f" path="res://resource/ui/hud/_hud_design.png" id="5_qqrb8"]
[ext_resource type="Script" path="res://script/ui/hud/lock_item.gd" id="5_usy8x"]
[ext_resource type="Texture2D" uid="uid://dx2vp753yvh4y" path="res://render/texture/shape/lock.png" id="6_hmslt"]
[ext_resource type="Shader" path="res://render/shader/loading.gdshader" id="9_lv4gd"]
[sub_resource type="Animation" id="Animation_ikdwl"]
resource_name = "rotate"
@ -30,34 +31,42 @@ _data = {
"rotate": SubResource("Animation_ikdwl")
}
[sub_resource type="ShaderMaterial" id="ShaderMaterial_b5bdl"]
shader = ExtResource("9_lv4gd")
shader_parameter/in_color = null
shader_parameter/position = -2.0
shader_parameter/size = Vector2(32, 32)
[sub_resource type="Animation" id="Animation_4kxot"]
resource_name = "end"
length = 0.4
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:color")
tracks/0/path = NodePath(".:duration")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0, 0.1, 0.4),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)]
"values": [-2.0, -2.0, 1.0]
}
[sub_resource type="Animation" id="Animation_x6v17"]
resource_name = "start"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:color")
tracks/0/path = NodePath(".:duration")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2),
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
"values": [1.0, -2.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fofuj"]
@ -126,14 +135,15 @@ offset_bottom = 40.0
script = ExtResource("3_6chl0")
[node name="LoadingPage" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
script = ExtResource("4_jqajt")
duration = -1.5
[node name="ColorRect" type="ColorRect" parent="LoadingPage"]
material = SubResource("ShaderMaterial_b5bdl")
layout_mode = 0
offset_right = 640.0
offset_bottom = 360.0

@ -11,7 +11,7 @@ const drag_ground : float = 20
const drag_air : float = 5
#地图
#const starting_level : String = "level01_forecourt.tscn"
const starting_level : String = "level00_test1.tscn"
const level_loading_min_time : float = 0.2
const starting_level : String = "level01_forecourt.tscn"
#const starting_level : String = "level00_test1.tscn"
const level_loading_min_time : float = 0.5
const level_loading_control_time : float = 0.2

@ -4,7 +4,6 @@ extends Control
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

@ -2,7 +2,13 @@ extends Control
@onready var animation = $AnimationPlayer as AnimationPlayer
var color_material : ShaderMaterial
@export var duration : float:
set(value):
if color_material:color_material.set_shader_parameter("position",value)
func _ready():
color_material = $ColorRect.material as ShaderMaterial
SignalManager.level_loading_start.connect(on_level_loading_start)
SignalManager.level_loading_end.connect(on_level_loading_end)

Loading…
Cancel
Save