diff options
-rw-r--r-- | scripts/basketball.gd | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/scripts/basketball.gd b/scripts/basketball.gd index 31d082a..ea9fe65 100644 --- a/scripts/basketball.gd +++ b/scripts/basketball.gd @@ -2,17 +2,17 @@ extends RigidBody2D export var spin_speed = -1 export var move_speed = 60 +export var power_magnitude = 10 var start_position var is_dragging = false var waiting_for_shoot = true -var power -var power_magnitude = 10 -var spin_rotation = 0 var ready_to_shoot var ready_to_hold -var exit_position +var power +var spin_rotation = 0 var has_exited +var exit_position func _ready(): start_position = position @@ -52,23 +52,25 @@ func _process(delta): func _input(event): if event.is_action_pressed("shoot") and ready_to_hold and waiting_for_shoot: - $Sprite.position = event.position - start_position + is_dragging = true $GhostSprite.visible = true + $Sprite.position = event.position - start_position $GhostSprite.rotation = $Sprite.rotation - is_dragging = true if !has_exited and is_dragging and event is InputEventMouseMotion: $Sprite.position = event.position - start_position if event.is_action_released("shoot"): - if is_dragging and ready_to_shoot or !waiting_for_shoot: + if !waiting_for_shoot: + toggle_mode() + if is_dragging and ready_to_shoot: + is_dragging = false + $GhostSprite.visible = false + $Sprite.position = Vector2() var basketball_position if has_exited: basketball_position = exit_position else: basketball_position = event.position power = (start_position - basketball_position) * power_magnitude - $Sprite.position = Vector2() - is_dragging = false - $GhostSprite.visible = false toggle_mode() func on_OuterShape_mouse_entered(): |