summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan <logan@cflip.net>2022-09-30 19:22:48 -0600
committerLogan <logan@cflip.net>2022-09-30 19:22:48 -0600
commit4ec359af497df0059e3049529bef6d9cede2c39a (patch)
tree5e35ef4ddc556359e002061ac87e72c40ce0bcf4
parentb57627b9d5226bb21e397ffef692eac23f4293fa (diff)
Improved position changer and removed the need for a global variable.
-rw-r--r--scenes/level.tscn1
-rw-r--r--scripts/basketball.gd27
-rw-r--r--scripts/global_variables.gd1
-rw-r--r--scripts/hoop.gd10
4 files changed, 28 insertions, 11 deletions
diff --git a/scenes/level.tscn b/scenes/level.tscn
index 7dcf4ff..dbf4ba1 100644
--- a/scenes/level.tscn
+++ b/scenes/level.tscn
@@ -83,3 +83,4 @@ position = Vector2( 123, 73 )
[connection signal="score" from="Hoop" to="Interface" method="_on_Hoop_score"]
[connection signal="score" from="Hoop" to="Basketball" method="_on_Hoop_score"]
+[connection signal="reset" from="Basketball" to="Hoop" method="_on_Basketball_reset"]
diff --git a/scripts/basketball.gd b/scripts/basketball.gd
index cc794ce..9e95d35 100644
--- a/scripts/basketball.gd
+++ b/scripts/basketball.gd
@@ -1,14 +1,19 @@
extends RigidBody2D
+signal reset
+
export var spin_speed = -1
export var move_speed = 60
export var power_magnitude = 10
export var drag_radius = 30
var start_position: Vector2
+var start_minimum = drag_radius
+onready var start_maximum = $"../Hoop".position.x - 40
var is_dragging = false
var waiting_for_shoot = true
var mouse_over_ball = false
+var difficulty_phase = 1
func _ready():
start_position = global_position
@@ -29,7 +34,7 @@ func toggle_mode():
# Adds offset of ball's rotation to sprite AFTER the entire object has rotated from physics.
# Done to keep appearance of same rotation to add consistency when resetting the ball.
$Sprite.rotation += rotation
- global_variables.has_scored = false
+ emit_signal("reset")
waiting_for_shoot = true
set_use_custom_integrator(waiting_for_shoot)
@@ -66,18 +71,24 @@ func _input(event):
func _on_InnerShape_mouse_entered():
mouse_over_ball = true
-
func _on_InnerShape_mouse_exited():
mouse_over_ball = false
func position_changer():
- var clamp_minimum = drag_radius + 0
- var clamp_maximum = $"../Hoop".position.x - 40
- if global_variables.score < 5:
+ # Progressive
+ if difficulty_phase == 1:
start_position.x -= 20
- start_position.x = clamp(start_position.x, clamp_minimum, clamp_maximum)
- else:
- start_position.x = rand_range(clamp_minimum, clamp_maximum)
+ start_position.x = clamp(start_position.x, start_minimum, start_maximum)
+ # Random
+ if difficulty_phase == 2:
+ start_position.x = rand_range(start_minimum, start_maximum)
func _on_Hoop_score():
+ if global_variables.score >= 5 and global_variables.score < 15:
+ difficulty_phase = 2
+ if global_variables.score >= 15 and global_variables.score < 25:
+ start_minimum = (drag_radius * 2) + $"../Camera2D".limit_left
+ difficulty_phase = 1
+ if global_variables.score >= 25 and global_variables.score < 35:
+ difficulty_phase = 2
position_changer()
diff --git a/scripts/global_variables.gd b/scripts/global_variables.gd
index f0702e6..b570635 100644
--- a/scripts/global_variables.gd
+++ b/scripts/global_variables.gd
@@ -1,4 +1,3 @@
extends Node
var score = 0
-var has_scored = false
diff --git a/scripts/hoop.gd b/scripts/hoop.gd
index 6faaa66..d5574c6 100644
--- a/scripts/hoop.gd
+++ b/scripts/hoop.gd
@@ -2,8 +2,14 @@ extends StaticBody2D
signal score
+var has_scored = false
+
func _on_Area2D_body_exited(_body):
# Prevent scoring multiple points with one basketball throw.
- if !global_variables.has_scored:
- global_variables.has_scored = true
+ if !has_scored:
+ global_variables.score += 1
+ has_scored = true
emit_signal ("score")
+
+func _on_Basketball_reset():
+ has_scored = false