From 586a6d7d5f9f8ab6cfe9fccab8ee827b2aab172f Mon Sep 17 00:00:00 2001 From: Logan Date: Mon, 26 Sep 2022 19:54:17 -0600 Subject: Refactored sprite drag-orbiting code. --- scripts/basketball.gd | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'scripts') 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() -- cgit v1.2.3