diff --git a/Game/scripts/player1.gd b/Game/scripts/player1.gd index 87214a9..72bcd20 100644 --- a/Game/scripts/player1.gd +++ b/Game/scripts/player1.gd @@ -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