diff options
-rw-r--r-- | project.godot | 10 | ||||
-rw-r--r-- | scripts/player.gd | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/project.godot b/project.godot index 2094e18..68fc3d1 100644 --- a/project.godot +++ b/project.godot @@ -66,6 +66,16 @@ turn_left={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +turn_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +turn_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} [rendering] diff --git a/scripts/player.gd b/scripts/player.gd index 69ba910..371bb93 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -25,6 +25,7 @@ var last_wall_direction: Vector3 = Vector3() var inital_camera_offset: Vector3 = Vector3() var camera_rotation: float = 0 +var camera_pitch: float = 0 func got_body(body: Node3D): if current_node == null: @@ -90,6 +91,9 @@ func _process(delta: float): func turn_camera(delta: float): var turn_amt = Input.get_axis("turn_right", "turn_left") camera_rotation += turn_amt * delta + + var pitch_amt = Input.get_axis("turn_up", "turn_down") + camera_pitch = clamp(camera_pitch + pitch_amt * delta, deg_to_rad(-45.0), deg_to_rad(45.0)) func _physics_process(delta): var speed = SPEED @@ -175,7 +179,7 @@ func _physics_process(delta): move_and_slide() # Position camera - $Camera3D.global_position = global_position + inital_camera_offset.rotated(Vector3.UP, camera_rotation) + $Camera3D.global_position = global_position + inital_camera_offset.rotated(Vector3.RIGHT, camera_pitch).rotated(Vector3.UP, camera_rotation) $Camera3D.look_at(global_position) if stam_consumption == 0 and not Input.is_action_pressed("run") and is_on_floor(): |