add animations
This commit is contained in:
38
core/game_menu/hoover_tween.gd
Normal file
38
core/game_menu/hoover_tween.gd
Normal file
@@ -0,0 +1,38 @@
|
||||
extends Node
|
||||
|
||||
|
||||
@export_group("Settings")
|
||||
@export var always_active: bool = false
|
||||
@export var detector_node: Control
|
||||
@export var visual_node: Control
|
||||
@export var scale_amount: Vector2 = Vector2(1.1, 1.1)
|
||||
@export var duration: float = 0.5
|
||||
|
||||
var hover_tween: Tween
|
||||
|
||||
func _ready():
|
||||
if not detector_node or not visual_node:
|
||||
return
|
||||
|
||||
if always_active:
|
||||
hover_tween = create_tween().set_loops()
|
||||
hover_tween.tween_property(visual_node, "scale", scale_amount, duration).set_trans(Tween.TRANS_SINE)
|
||||
hover_tween.tween_property(visual_node, "scale", Vector2.ONE, duration).set_trans(Tween.TRANS_SINE)
|
||||
return
|
||||
|
||||
detector_node.mouse_entered.connect(_on_mouse_entered)
|
||||
detector_node.mouse_exited.connect(_on_mouse_exited)
|
||||
|
||||
|
||||
func _on_mouse_entered():
|
||||
if hover_tween: hover_tween.kill()
|
||||
|
||||
hover_tween = create_tween().set_loops()
|
||||
hover_tween.tween_property(visual_node, "scale", scale_amount, duration).set_trans(Tween.TRANS_SINE)
|
||||
hover_tween.tween_property(visual_node, "scale", Vector2.ONE, duration).set_trans(Tween.TRANS_SINE)
|
||||
|
||||
func _on_mouse_exited():
|
||||
if hover_tween: hover_tween.kill()
|
||||
|
||||
var exit_tween = create_tween()
|
||||
exit_tween.tween_property(visual_node, "scale", Vector2.ONE, 0.2).set_trans(Tween.TRANS_QUAD)
|
||||
Reference in New Issue
Block a user