fuzzyworld

godot-shooter / commit

Turn rate and move speed are now both taken into account when turning, so the turning radius stays the same, even if we increase the speed.

09081ce6467c7facc3de92d8381ce972fc473812 · Pavel Safronov · 2023-11-06 12:31:49 -0800 · parents d8d02b36e93e

Turn rate and move speed are now both taken into account when turning, so the turning radius stays the same, even if we increase the speed.
 Enemy.gd  | 4 ++--
 Player.gd | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Enemy.gd b/Enemy.gd
index 5357cb8..8b39fe1 100644
--- a/Enemy.gd
+++ b/Enemy.gd
@@ -8,7 +8,7 @@ const Explosion = preload("res://Explosion.tscn")
 const Smoke = preload("res://Smoke.tscn")
 
 export var move_speed = 40
-export var turn_rate = 0.3
+export var turn_rate = 0.01
 export var health = -1
 export var max_health = 10
 export var is_targeted = false
@@ -56,7 +56,7 @@ func turn_towards(pos: Vector2):
 	var to_dir = (pos - global_position).normalized()
 	var curr_dir = velocity.normalized()
 	var dir_diff = to_dir - curr_dir
-	var change = dir_diff.normalized() * turn_rate
+	var change = dir_diff.normalized() * turn_rate * move_speed
 	velocity = (velocity + change).normalized() * move_speed
 
 func hurt():
diff --git a/Player.gd b/Player.gd
index 9d3c7ed..c4cf544 100644
--- a/Player.gd
+++ b/Player.gd
@@ -7,7 +7,7 @@ export var max_health = 10
 export var shot_period_seconds = .5
 export var bullet: PackedScene
 export var is_invincible = false
-export var turn_rate = 0.3
+export var turn_rate = 0.01
 
 var PopupControl = preload("res://Popup.tscn")
 
@@ -64,7 +64,7 @@ func turn_towards(pos: Vector2):
 	var to_dir = (pos - global_position).normalized()
 	var curr_dir = velocity.normalized()
 	var dir_diff = to_dir - curr_dir
-	var change = dir_diff.normalized() * turn_rate
+	var change = dir_diff.normalized() * turn_rate * move_speed
 	velocity = (velocity + change).normalized() * move_speed
 
 func shoot():