summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan <logan@cflip.net>2022-09-26 19:54:17 -0600
committerLogan <logan@cflip.net>2022-09-26 19:54:17 -0600
commit586a6d7d5f9f8ab6cfe9fccab8ee827b2aab172f (patch)
tree920e7e9711f71dd267fc579c21806d903a54d9c1
parent2803cbd5200dcc4f9b6d22927f637b3a10dfa2a8 (diff)
Refactored sprite drag-orbiting code.
-rw-r--r--scripts/basketball.gd17
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()