Tween animation for highlights

This commit is contained in:
bleeptrack 2020-11-10 12:42:47 +01:00
parent 45442dd549
commit 20358f78a1
2 changed files with 14 additions and 2 deletions

View file

@ -8,9 +8,17 @@ func _ready():
func _mouse_entered(_area): func _mouse_entered(_area):
hovered = true hovered = true
var tween = Tween.new()
tween.interpolate_property($Highlight/Sprite.material, "shader_param/hovered", 0, 1, 0.1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT)
add_child(tween)
tween.start()
func _mouse_exited(_area): func _mouse_exited(_area):
hovered = false hovered = false
var tween = Tween.new()
tween.interpolate_property($Highlight/Sprite.material, "shader_param/hovered", 1, 0, 0.1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT)
add_child(tween)
tween.start()
func _input(event): func _input(event):
if event is InputEventMouseButton: if event is InputEventMouseButton:

View file

@ -4,21 +4,25 @@
[ext_resource path="res://nodes/blob.svg" type="Texture" id=2] [ext_resource path="res://nodes/blob.svg" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1] [sub_resource type="CircleShape2D" id=1]
radius = 23.5871 radius = 63.1532
[sub_resource type="Shader" id=2] [sub_resource type="Shader" id=2]
code = "shader_type canvas_item; code = "shader_type canvas_item;
uniform float hovered;
void fragment() { void fragment() {
vec2 center = vec2(0.5, 0.5); vec2 center = vec2(0.5, 0.5);
float d = distance(UV, center); float d = distance(UV, center);
COLOR = vec4(0.4, 0.65, 1, smoothstep(0.5,0.2,d)); COLOR = vec4(0.4 + hovered*0.2, 0.65 + hovered*0.2, 1, smoothstep(0.5,0.2 + hovered*0.1,d));
} }
" "
custom_defines = "" custom_defines = ""
[sub_resource type="ShaderMaterial" id=3] [sub_resource type="ShaderMaterial" id=3]
resource_local_to_scene = true
shader = SubResource( 2 ) shader = SubResource( 2 )
shader_param/hovered = 0.0
[node name="DropArea" type="Node2D" groups=[ [node name="DropArea" type="Node2D" groups=[
"drop_areas", "drop_areas",