From 2d42eaea9ac81170de4cbf7e4ac8b4d61b381be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sat, 6 Sep 2025 22:45:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0CooldownProgress?= =?UTF-8?q?=E7=9D=80=E8=89=B2=E5=99=A8=EF=BC=8C=E6=B7=BB=E5=8A=A0trailAlph?= =?UTF-8?q?a=E5=8F=82=E6=95=B0=E4=BB=A5=E5=A2=9E=E5=BC=BA=E9=80=8F?= =?UTF-8?q?=E6=98=8E=E5=BA=A6=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Debug/TestScene.tscn | 16 +++++++++++++--- shaders/CooldownProgress.gdshader | 3 ++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/components/Debug/TestScene.tscn b/components/Debug/TestScene.tscn index 4f7cb33..624bd85 100644 --- a/components/Debug/TestScene.tscn +++ b/components/Debug/TestScene.tscn @@ -1,8 +1,18 @@ -[gd_scene load_steps=2 format=3 uid="uid://bnf0o8rmin5v4"] +[gd_scene load_steps=4 format=3 uid="uid://bnf0o8rmin5v4"] -[ext_resource type="Texture2D" uid="uid://b7vxserbhskol" path="res://resources/feeds/banana.svg" id="1_omrjh"] +[ext_resource type="Shader" path="res://shaders/CooldownProgress.gdshader" id="1_vncc3"] +[ext_resource type="Texture2D" uid="uid://16yhngg3jpun" path="res://resources/weapons/purple-crystal.svg" id="2_gmp7s"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_jyenr"] +shader = ExtResource("1_vncc3") +shader_parameter/progress = 0.5 +shader_parameter/backAlpha = 0.25 +shader_parameter/edgeHeight = 0.05 +shader_parameter/trailHeight = 0.3 +shader_parameter/trailAlpha = 0.5 [node name="Node2D" type="Node2D"] [node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("1_omrjh") +material = SubResource("ShaderMaterial_jyenr") +texture = ExtResource("2_gmp7s") diff --git a/shaders/CooldownProgress.gdshader b/shaders/CooldownProgress.gdshader index 7c8a42a..17c0c5a 100644 --- a/shaders/CooldownProgress.gdshader +++ b/shaders/CooldownProgress.gdshader @@ -3,12 +3,13 @@ uniform float progress:hint_range(0.0, 2.0, 0.01)=0.5; uniform float backAlpha:hint_range(0.0, 1.0, 0.01)=0.25; uniform float edgeHeight:hint_range(0.0, 1.0, 0.01)=0.05; uniform float trailHeight:hint_range(0.0, 1.0, 0.01)=0.3; +uniform float trailAlpha:hint_range(0.0, 1.0, 0.01)=0.5; void fragment() { if(UV.y>=progress){ COLOR.a*=backAlpha; }else if(distance(UV.y,progress)