diff options
author | Logan <logan@cflip.net> | 2022-09-30 19:22:48 -0600 |
---|---|---|
committer | Logan <logan@cflip.net> | 2022-09-30 19:22:48 -0600 |
commit | 4ec359af497df0059e3049529bef6d9cede2c39a (patch) | |
tree | 5e35ef4ddc556359e002061ac87e72c40ce0bcf4 | |
parent | b57627b9d5226bb21e397ffef692eac23f4293fa (diff) |
Improved position changer and removed the need for a global variable.
-rw-r--r-- | scenes/level.tscn | 1 | ||||
-rw-r--r-- | scripts/basketball.gd | 27 | ||||
-rw-r--r-- | scripts/global_variables.gd | 1 | ||||
-rw-r--r-- | scripts/hoop.gd | 10 |
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 |