From d200a5fbc96ecad3f4e4fec45ebb2df8cab295fb Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Fri, 13 Mar 2026 16:58:06 +0800 Subject: [PATCH] fix: movement speed varies depending on viewing angle --- src/gameplay/player.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gameplay/player.cpp b/src/gameplay/player.cpp index 00e9f63..152f384 100644 --- a/src/gameplay/player.cpp +++ b/src/gameplay/player.cpp @@ -32,16 +32,16 @@ void Player::update(float delta_time) { m_right = glm::normalize(glm::cross(m_front, glm::vec3(0.0f, 1.0f, 0.0f))); float speed = m_speed * delta_time; if (m_move_state.forward) { - m_player_pos += glm::vec3(m_front.x, 0.0f, m_front.z) * speed; + m_player_pos += glm::normalize(glm::vec3(m_front.x, 0.0f, m_front.z)) * speed; } if (m_move_state.back) { - m_player_pos -= glm::vec3(m_front.x, 0.0f, m_front.z) * speed; + m_player_pos -= glm::normalize(glm::vec3(m_front.x, 0.0f, m_front.z)) * speed; } if (m_move_state.left) { - m_player_pos -= glm::vec3(m_right.x, 0.0f, m_right.z) * speed; + m_player_pos -= glm::normalize(glm::vec3(m_right.x, 0.0f, m_right.z)) * speed; } if (m_move_state.right) { - m_player_pos += glm::vec3(m_right.x, 0.0f, m_right.z) * speed; + m_player_pos += glm::normalize(glm::vec3(m_right.x, 0.0f, m_right.z)) * speed; } if (m_move_state.up) { m_player_pos += glm::vec3(0.0f, 1.0f, 0.0f) * speed;