28 lines
1.1 KiB
GDScript
28 lines
1.1 KiB
GDScript
extends Node3D
|
|
|
|
@export var vertical_joystick_sensitity : float = 2
|
|
@export var vertical_mouse_sensitivity : float = 0.02
|
|
|
|
var max_angle_radians = 1.5
|
|
|
|
func _process(delta):
|
|
if not GlobalSettings.is_paused:
|
|
var look_velocity = Input.get_vector("look_left", "look_right", "look_up", "look_down")
|
|
var rotate_degree = -look_velocity.y * (GlobalSettings.GetSetting(GlobalSettings.Setting.Joystick_Speed)) *delta
|
|
var rotation_after = rotate_degree + rotation.x
|
|
if rotation_after <= max_angle_radians and rotate_degree > 0:
|
|
rotate_x(rotate_degree)
|
|
elif rotation_after >= -max_angle_radians and rotate_degree < 0:
|
|
rotate_x(rotate_degree)
|
|
|
|
|
|
func _unhandled_input(event):
|
|
if not GlobalSettings.is_paused:
|
|
if event is InputEventMouseMotion:
|
|
var mouse_movement = -event.relative.y
|
|
var rotate_amount = mouse_movement * (GlobalSettings.GetSetting(GlobalSettings.Setting.Mouse_Speed) / 100)
|
|
var rotation_after = rotate_amount + rotation.x
|
|
if rotation_after <= max_angle_radians and rotate_amount > 0:
|
|
rotate_x(rotate_amount)
|
|
elif rotation_after >= -max_angle_radians and rotate_amount < 0:
|
|
rotate_x(rotate_amount) |