fix(*): Change direction relative to player not the world

This commit is contained in:
Josh Creek
2024-03-21 20:23:54 +00:00
parent b7d52b7509
commit d11c566ed9
+24 -13
View File
@@ -2,17 +2,28 @@ extends 'res://scripts/Vehicle.gd'
func get_input_vector() -> Vector3:
var input_vector = Vector3.ZERO
if Input.is_action_pressed("move_forward"):
input_vector.z -= 1
if Input.is_action_pressed("move_backward"):
input_vector.z += 1
if Input.is_action_pressed("move_left"):
input_vector.x -= 1
if Input.is_action_pressed("move_right"):
input_vector.x += 1
if Input.is_action_pressed("move_up"):
input_vector.y += 1
if Input.is_action_pressed("move_down"):
input_vector.y -= 1
var camera_path = "/root/MatchNode3D/Players/GridContainer/SubViewportContainer/SubViewport/Player1/Camera3D"
var camera = get_node(camera_path)
return input_vector
if camera:
var camera_transform = camera.global_transform
var forward_direction = -camera_transform.basis.z
var right_direction = camera_transform.basis.x
if Input.is_action_pressed("move_forward"):
input_vector += forward_direction
if Input.is_action_pressed("move_backward"):
input_vector -= forward_direction
if Input.is_action_pressed("move_left"):
input_vector -= right_direction
if Input.is_action_pressed("move_right"):
input_vector += right_direction
if Input.is_action_pressed("move_up"):
input_vector.y += 1
if Input.is_action_pressed("move_down"):
input_vector.y -= 1
return input_vector.normalized()
else:
print("Camera not found")
return Vector3.ZERO