1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-27 22:41:56 +08:00

feat(技能图标): 改进冷却进度视觉效果和样式

- 移除进度值的clamp限制,允许超出范围效果
- 为冷却进度着色器添加边缘高光和拖尾效果
- 调整图标容器圆角和最小尺寸
- 更新材质参数以支持新的着色器效果
This commit is contained in:
2025-09-06 16:40:25 +08:00
parent 60dac42141
commit 77f3d5e4a1
3 changed files with 16 additions and 7 deletions
+7 -5
View File
@@ -10,18 +10,20 @@ content_margin_top = 5.0
content_margin_right = 5.0
content_margin_bottom = 5.0
bg_color = Color(0, 0, 0, 0.5)
corner_radius_top_left = 15
corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 15
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ew32n"]
shader = ExtResource("1_jaivk")
shader_parameter/progress = 0.5
shader_parameter/backAlpha = 0.25
shader_parameter/edgeHeight = 0.05
shader_parameter/trailHeight = 0.3
[node name="SkillIconBase" type="PanelContainer"]
custom_minimum_size = Vector2(30, 30)
custom_minimum_size = Vector2(40, 40)
offset_right = 30.0
offset_bottom = 30.0
theme_override_styles/panel = SubResource("StyleBoxFlat_a60wd")
+1 -1
View File
@@ -11,4 +11,4 @@ func _physics_process(_delta):
if is_instance_valid(weapon):
textureRect.texture = weapon.avatarTexture
var progress = weapon.cooldownTimer.timeSinceLastStart() / weapon.cooldownTimer.cooldown
textureRect.material.set_shader_parameter("progress", clamp(progress, 0, 1))
textureRect.material.set_shader_parameter("progress", progress)
+8 -1
View File
@@ -1,9 +1,16 @@
shader_type canvas_item;
uniform float progress:hint_range(0.0, 1.0, 0.01)=0.5;
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;
void fragment() {
COLOR=texture(TEXTURE,UV);
if(UV.y>=progress){
COLOR.a*=backAlpha;
}else if(distance(UV.y,progress)<edgeHeight){
COLOR.rgb*=255.0;
}else if(progress-UV.y<=trailHeight){
COLOR.rgb*=1.0+(trailHeight/(progress-UV.y)-1.0)*0.5;
//COLOR.a*=(progress-UV.y)/trailHeight;
}
}