physics.gd 959 B

1234567891011121314151617181920212223242526272829303132
  1. extends Node2D
  2. @onready var celestial_circus: SpineSprite = $"celestial-circus"
  3. var last_x = -1
  4. var last_y = -1
  5. var isMouseOver = false
  6. func _ready():
  7. celestial_circus.get_animation_state().set_animation("wind-idle", true, 0)
  8. celestial_circus.get_animation_state().set_animation("eyeblink-long", true, 1)
  9. celestial_circus.get_animation_state().set_animation("stars", true, 2)
  10. func _process(_delta):
  11. if (Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and isMouseOver):
  12. var pos = get_viewport().get_mouse_position()
  13. if (last_x != -1):
  14. var dx = pos.x - last_x
  15. var dy = pos.y - last_y
  16. celestial_circus.global_position += Vector2(dx, dy)
  17. celestial_circus.get_skeleton().physics_translate(dx * 1 / celestial_circus.scale.x, dy * 1 / celestial_circus.scale.y)
  18. last_x = pos.x
  19. last_y = pos.y
  20. else:
  21. last_x = -1
  22. last_y = -1
  23. func _on_area_2d_mouse_entered():
  24. isMouseOver = true
  25. func _on_area_2d_mouse_exited():
  26. isMouseOver = false