Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Button
- @export var hover_scale: Vector2
- @export_range(0.00, 2.0, 0.02) var hover_anim_duration: float
- var init_size: Vector2
- var init_pos: Vector2
- var final_pos: Vector2
- var pivot_movement: Vector2
- func _ready() -> void:
- init_size = size
- init_pos = global_position
- mouse_entered.connect(button_entered)
- mouse_exited.connect(button_exited)
- # pressed.connect(button_pressed)
- func button_entered():
- var tween:= create_tween()
- tween.tween_property(self, "size", init_size * hover_scale, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- tween.tween_property(self, "global_position", final_pos, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- func button_exited():
- var tween:= create_tween()
- tween.tween_property(self, "size", init_size, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- tween.tween_property(self, "global_position", init_pos, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- func button_pressed():
- pass
- func _process(delta: float) -> void:
- pivot_movement = (init_size * hover_scale) - init_size
- final_pos = init_pos - pivot_movement / 2.0
Advertisement
Add Comment
Please, Sign In to add comment