mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-01-20 03:54:47 +00:00
Merge branch 'fix/mouse' into 'develop'
🐛 fix camera updates See merge request open-fpsz/open-fpsz!47
This commit is contained in:
commit
c3582b04e6
|
|
@ -24,8 +24,6 @@ signal jumped
|
|||
signal fired_primary
|
||||
signal throwed_flag
|
||||
|
||||
var _mouse_position: Vector2
|
||||
|
||||
func _ready():
|
||||
var has_authority = is_multiplayer_authority()
|
||||
set_process(has_authority)
|
||||
|
|
@ -38,7 +36,15 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||
if event is InputEventMouseMotion:
|
||||
if mouse_mode == Input.MOUSE_MODE_CAPTURED:
|
||||
# retrieve mouse position relative to last frame
|
||||
_mouse_position = event.relative * MOUSE_SENSITIVITY
|
||||
_update_camera(event.relative)
|
||||
|
||||
func _update_camera(relative_motion : Vector2, sensitivity : float = MOUSE_SENSITIVITY) -> void:
|
||||
# clamp vertical rotation (head motion)
|
||||
camera_rotation.y -= relative_motion.y * sensitivity / 100
|
||||
camera_rotation.y = clamp(camera_rotation.y, deg_to_rad(-90.0),deg_to_rad(90.0))
|
||||
# wrap horizontal rotation (to prevent accumulation)
|
||||
camera_rotation.x -= relative_motion.x * sensitivity / 100
|
||||
camera_rotation.x = wrapf(camera_rotation.x, deg_to_rad(0.0),deg_to_rad(360.0))
|
||||
|
||||
func _process(delta):
|
||||
direction = Input.get_vector("left", "right", "forward", "backward")
|
||||
|
|
@ -50,7 +56,6 @@ func _process(delta):
|
|||
_throw_flag.rpc()
|
||||
jetting = Input.is_action_pressed("jump_and_jet")
|
||||
skiing = Input.is_action_pressed("ski")
|
||||
_update_camera(delta)
|
||||
|
||||
@rpc("call_local")
|
||||
func _jump():
|
||||
|
|
@ -64,12 +69,3 @@ func _fire_primary():
|
|||
func _throw_flag():
|
||||
throwed_flag.emit()
|
||||
|
||||
func _update_camera(delta):
|
||||
# clamp vertical rotation (head motion)
|
||||
camera_rotation.y -= _mouse_position.y * delta
|
||||
camera_rotation.y = clamp(camera_rotation.y, deg_to_rad(-90.0),deg_to_rad(90.0))
|
||||
# wrap horizontal rotation (to prevent accumulation)
|
||||
camera_rotation.x -= _mouse_position.x * delta
|
||||
camera_rotation.x = wrapf(camera_rotation.x, deg_to_rad(0.0),deg_to_rad(360.0))
|
||||
# reset mouse motion until next input event
|
||||
_mouse_position = Vector2.ZERO
|
||||
|
|
|
|||
Loading…
Reference in a new issue