Guest User

Janky Solution

a guest
Sep 29th, 2025
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GDScript 1.27 KB | Source Code | 0 0
  1. extends Button
  2.  
  3. @export var hover_scale: Vector2
  4. @export_range(0.00, 2.0, 0.02) var hover_anim_duration: float
  5.  
  6. var init_size: Vector2
  7. var init_pos: Vector2
  8. var final_pos: Vector2
  9. var pivot_movement: Vector2
  10.  
  11. func _ready() -> void:
  12.     init_size = size
  13.     init_pos = global_position
  14.    
  15.     mouse_entered.connect(button_entered)
  16.     mouse_exited.connect(button_exited)
  17. #   pressed.connect(button_pressed)
  18.  
  19. func button_entered():
  20.     var tween:= create_tween()
  21.     tween.tween_property(self, "size", init_size * hover_scale, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
  22.     tween.parallel()
  23.     tween.tween_property(self, "global_position", final_pos, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
  24.     tween.parallel()
  25.  
  26. func button_exited():
  27.     var tween:= create_tween()
  28.     tween.tween_property(self, "size", init_size, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
  29.     tween.parallel()
  30.     tween.tween_property(self, "global_position", init_pos, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
  31.     tween.parallel()
  32.  
  33. func button_pressed():
  34.     pass
  35.  
  36. func _process(delta: float) -> void:
  37.     pivot_movement = (init_size * hover_scale) - init_size
  38.     final_pos = init_pos - pivot_movement / 2.0
Advertisement
Add Comment
Please, Sign In to add comment