diff options
author | Logan <logan@cflip.net> | 2022-09-26 19:54:17 -0600 |
---|---|---|
committer | Logan <logan@cflip.net> | 2022-09-26 19:54:17 -0600 |
commit | 586a6d7d5f9f8ab6cfe9fccab8ee827b2aab172f (patch) | |
tree | 920e7e9711f71dd267fc579c21806d903a54d9c1 | |
parent | 2803cbd5200dcc4f9b6d22927f637b3a10dfa2a8 (diff) |
Refactored sprite drag-orbiting code.
-rw-r--r-- | scripts/basketball.gd | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/scripts/basketball.gd b/scripts/basketball.gd index 6770382..6171410 100644 --- a/scripts/basketball.gd +++ b/scripts/basketball.gd @@ -57,19 +57,10 @@ func _input(event): $Sprite.position = event.position - start_position $GhostSprite.rotation = $Sprite.rotation if is_dragging and event is InputEventMouseMotion: - var sprite_position = event.position - start_position - var hypot = sqrt(sprite_position.x * sprite_position.x + sprite_position.y * sprite_position.y) - var circle_radius = $OuterShape/CollisionShape2D.shape.radius - - if hypot > circle_radius: - var angle = atan2(sprite_position.y, sprite_position.x) - - var new_x = circle_radius * cos(angle) - var new_y = circle_radius * sin(angle) - - $Sprite.position = Vector2(new_x, new_y) - else: - $Sprite.position = sprite_position + $Sprite.position = event.position - start_position + if has_exited: + var angle = atan2($Sprite.position.y, $Sprite.position.x) + $Sprite.position = Vector2(cos(angle), sin(angle)) * $OuterShape/CollisionShape2D.shape.radius if event.is_action_released("shoot"): if !waiting_for_shoot: toggle_mode() |