From 0f2a5f4e15fd1d88abc91e4770cf76e076bc5534 Mon Sep 17 00:00:00 2001 From: Safariminer Date: Sat, 7 Jun 2025 16:03:16 -0400 Subject: [PATCH] Fix bug where camera view would drag behind player movement when strafing. --- ProjectMorault/Morault_Player.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ProjectMorault/Morault_Player.cpp b/ProjectMorault/Morault_Player.cpp index 8d78e0d..7648bc3 100644 --- a/ProjectMorault/Morault_Player.cpp +++ b/ProjectMorault/Morault_Player.cpp @@ -47,7 +47,7 @@ void Morault::Gameplay::PlayerController::UpdatePlayerController(bool focus, Mor rotation = Vector3RotateByAxisAngle(rotation, { 0,1,0 }, -GetMouseDelta().x * 0.05 * sensitivityMultiplier); rotation.y = Clamp(rotation.y - GetMouseDelta().y * 0.3 * sensitivityMultiplier, -15, 15); - camera.target = Vector3Add(camera.position, rotation); + if (IsKeyDown(KEY_W)) camera.position = Vector3Add(camera.position, Vector3Multiply({rotation.x, 0, rotation.z}, {GetFrameTime(), GetFrameTime(), GetFrameTime()})); if (IsKeyDown(KEY_S)) camera.position = Vector3Subtract(camera.position, Vector3Multiply({ rotation.x, 0, rotation.z }, { GetFrameTime(), GetFrameTime(), GetFrameTime() })); @@ -59,7 +59,11 @@ void Morault::Gameplay::PlayerController::UpdatePlayerController(bool focus, Mor } + else { + rotation = { 0,0,0 }; + } + camera.target = Vector3Add(camera.position, rotation); for (int i = 0; i < map->MapTriangles.size(); i++) { if (CheckCollisionPointTriangle({ camera.position.x / renderScale, camera.position.z / renderScale }, map->MapTriangles[i].a, map->MapTriangles[i].b, map->MapTriangles[i].c)) { collfloor = map->MapTriangles[i].heightFloor * renderScale + 5;