fix camera jitter

This commit is contained in:
2025-02-17 23:18:14 +10:00
parent 113a20589f
commit 94cba32857
4 changed files with 18 additions and 10 deletions

View File

@@ -14,16 +14,18 @@ func _ready() -> void:
func _process(_delta: float) -> void:
_follow()
func _follow() -> void:
var player_position := Referencer.player.global_position
if Referencer.player.is_on_floor():
_floor_height = player_position.y
player_position.y = _floor_height
var mouse_pos := get_viewport().get_mouse_position()
var aim_position := Player.mouse_project(mouse_pos, player_position, self)
var aim_relative := aim_position - player_position
var follow_position := player_position + aim_relative * aim_offset_factor
var follow_position := (
player_position + Referencer.player.aim_offset * aim_offset_factor
)
global_rotation_degrees = angle_degrees
global_position = (

View File

@@ -10,7 +10,7 @@ const FALL_ACCELERATION: float = 25
@export var _respawn_height: float = -5
var aim_position: Vector3
var aim_offset: Vector3
var _respawn_point: Vector3
var _floor_height: float = 0
@@ -22,8 +22,7 @@ func _ready() -> void:
func _process(_delta: float) -> void:
_mouse_aiming()
look_at(aim_position, Vector3.UP, true)
call_deferred("_mouse_aiming")
_process_respawning()
@@ -38,7 +37,7 @@ func _physics_process(delta: float) -> void:
move_and_slide()
static func mouse_project(
func _mouse_project(
mouse_pos: Vector2, player_pos: Vector3, camera: Camera3D
) -> Vector3:
var from := camera.project_ray_origin(mouse_pos)
@@ -57,8 +56,10 @@ func _mouse_aiming() -> void:
_floor_height = player_position.y
player_position.y = _floor_height
var camera := Referencer.main_camera
aim_position = mouse_project(mouse_pos, player_position, camera)
var aim_position := _mouse_project(mouse_pos, player_position, camera)
aim_offset = aim_position - player_position
aim_position.y = global_position.y
look_at(aim_position, Vector3.UP, true)
func _process_respawning() -> void: