summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan <logan@cflip.net>2022-09-24 17:42:49 -0600
committerLogan <logan@cflip.net>2022-09-24 17:42:49 -0600
commitb41e2b9eeee4370b9f42d63708ab25ee81490996 (patch)
tree615d696519cb26a75a27a3c851758cda4aa41a75
parent286f4e6a2d70174d7bfb928ed1646ec03a5a37ab (diff)
Only throw basketball on mouse-release when cursor is near ball.
-rw-r--r--project.godot2
-rw-r--r--scenes/basketball.tscn13
-rw-r--r--scripts/basketball.gd15
3 files changed, 24 insertions, 6 deletions
diff --git a/project.godot b/project.godot
index 43deae4..80c33ce 100644
--- a/project.godot
+++ b/project.godot
@@ -26,7 +26,7 @@ common/drop_mouse_on_gui_input_disabled=true
shoot={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
]
}
diff --git a/scenes/basketball.tscn b/scenes/basketball.tscn
index f49819d..75a5e60 100644
--- a/scenes/basketball.tscn
+++ b/scenes/basketball.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=6 format=2]
[ext_resource path="res://textures/basketball.png" type="Texture" id=1]
[ext_resource path="res://scripts/basketball.gd" type="Script" id=2]
@@ -9,6 +9,9 @@ bounce = 0.5
[sub_resource type="CircleShape2D" id=1]
radius = 40.0
+[sub_resource type="CircleShape2D" id=3]
+radius = 150.0
+
[node name="Basketball" type="RigidBody2D"]
physics_material_override = SubResource( 2 )
script = ExtResource( 2 )
@@ -22,3 +25,11 @@ shape = SubResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
scale = Vector2( 5, 5 )
texture = ExtResource( 1 )
+
+[node name="Area2D" type="Area2D" parent="."]
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
+shape = SubResource( 3 )
+
+[connection signal="mouse_entered" from="Area2D" to="." method="_on_Area2D_mouse_entered"]
+[connection signal="mouse_exited" from="Area2D" to="." method="_on_Area2D_mouse_exited"]
diff --git a/scripts/basketball.gd b/scripts/basketball.gd
index 5435963..246af81 100644
--- a/scripts/basketball.gd
+++ b/scripts/basketball.gd
@@ -9,6 +9,7 @@ var start_position
var waiting_for_shoot = true
var power = 100
var spin_rotation = 0
+var ready_to_shoot
func _ready():
start_position = position
@@ -34,7 +35,7 @@ func _integrate_forces(state):
state.linear_velocity = Vector2()
state.angular_velocity = 0
-# Temporary controls to adjust power
+# Temporary testing controls
func _process(delta):
if waiting_for_shoot:
spin_rotation += spin_speed * delta
@@ -43,7 +44,6 @@ func _process(delta):
if Input.is_action_pressed("ui_right"):
start_position.x += move_speed * delta
start_position.x = clamp(start_position.x, 0, 1024)
-
if Input.is_action_pressed("ui_up"):
if power < 200:
power += 0.5
@@ -54,5 +54,12 @@ func _process(delta):
emit_signal("change_power", power)
func _input(event):
- if event.is_action_pressed("shoot"):
- toggle_mode()
+ if event.is_action_released("shoot"):
+ if ready_to_shoot or !waiting_for_shoot:
+ toggle_mode()
+
+func _on_Area2D_mouse_entered():
+ ready_to_shoot = true
+
+func _on_Area2D_mouse_exited():
+ ready_to_shoot = false