fix camera jitter
This commit is contained in:
parent
113a20589f
commit
94cba32857
@ -16,6 +16,7 @@ run/main_scene="res://scenes/test.tscn"
|
||||
config/use_custom_user_dir=true
|
||||
config/custom_user_dir_name="Batrix"
|
||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||
run/max_fps=60
|
||||
boot_splash/bg_color=Color(0, 0, 0, 1)
|
||||
boot_splash/show_image=false
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
[node name="Test" type="Node"]
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("2_f4ehn")]
|
||||
process_priority = -1
|
||||
process_physics_priority = -1
|
||||
|
||||
[node name="Geometry" type="Node" parent="."]
|
||||
|
||||
@ -31,6 +33,8 @@ shadow_blur = 6.0
|
||||
environment = SubResource("Environment_wctar")
|
||||
|
||||
[node name="MainCamera" type="Camera3D" parent="."]
|
||||
process_priority = 100
|
||||
process_physics_priority = 100
|
||||
transform = Transform3D(0.866025, -0.321394, 0.383022, 0, 0.766044, 0.642788, -0.5, -0.55667, 0.663414, 4.894, 6.43, 6.963)
|
||||
current = true
|
||||
fov = 20.0
|
||||
|
||||
@ -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 = (
|
||||
|
||||
@ -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:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user