summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan <logan@cflip.net>2022-09-23 21:59:15 -0600
committerLogan <logan@cflip.net>2022-09-23 21:59:15 -0600
commite5b67d7ce326747dc9cd04eb2ee4f9d29bc4c970 (patch)
treef3f5dffb20d0ada160d3bb62879952bf6812bc29
parent3daf9c3d4b464943d0b70a6a650e7a6d6e7472c8 (diff)
Made basketball float and rotate before shooting.
-rw-r--r--scenes/basketball.tscn1
-rw-r--r--scripts/basketball.gd9
2 files changed, 8 insertions, 2 deletions
diff --git a/scenes/basketball.tscn b/scenes/basketball.tscn
index 457da83..ce0a71b 100644
--- a/scenes/basketball.tscn
+++ b/scenes/basketball.tscn
@@ -12,6 +12,7 @@ radius = 40.0
[node name="Basketball" type="RigidBody2D"]
position = Vector2( 71, 541 )
physics_material_override = SubResource( 2 )
+gravity_scale = 0.0
script = ExtResource( 2 )
__meta__ = {
"_edit_group_": true
diff --git a/scripts/basketball.gd b/scripts/basketball.gd
index 40d189c..43944c5 100644
--- a/scripts/basketball.gd
+++ b/scripts/basketball.gd
@@ -1,7 +1,7 @@
extends RigidBody2D
var start_position
-var do_reset = false
+var do_reset = true
var is_reset = true
# Called when the node enters the scene tree for the first time.
@@ -11,9 +11,11 @@ func _ready():
# Override the default physics when we want to manually reset the position and rotation.
func _integrate_forces(state):
if do_reset:
- state.transform = Transform2D(0, start_position)
+ state.transform.origin = start_position
state.linear_velocity = Vector2()
state.angular_velocity = 0
+ set_angular_damp(0)
+ apply_torque_impulse(-1000)
do_reset = false
is_reset = true
@@ -21,7 +23,10 @@ func _integrate_forces(state):
func _input(event):
if event.is_action_pressed("shoot"):
if is_reset:
+ set_angular_damp(-1)
+ gravity_scale = 1
apply_impulse(Vector2(10, 10), Vector2(500, -800))
is_reset = false
else:
+ gravity_scale = 0
do_reset = true