From 6733eb34951ca520babe89adef64fda06ae7390e Mon Sep 17 00:00:00 2001 From: hoenking Date: Thu, 18 Dec 2025 22:40:57 +0800 Subject: [PATCH] 15.Game loops & User input --- VulkanTest | Bin 610488 -> 613304 bytes first_app.cpp | 18 ++++++++++--- hk_camera.cpp | 28 +++++++++++++++++++++ hk_camera.hpp | 2 ++ hk_window.hpp | 2 ++ keyboard_movement_controller.cpp | 42 +++++++++++++++++++++++++++++++ keyboard_movement_controller.hpp | 31 +++++++++++++++++++++++ simple_render_system.cpp | 5 +--- 8 files changed, 121 insertions(+), 7 deletions(-) create mode 100644 keyboard_movement_controller.cpp create mode 100644 keyboard_movement_controller.hpp diff --git a/VulkanTest b/VulkanTest index a6d84c4d277e20a73c2166cf36842f6021a94cf3..aff8aa9ecb7f1d1877530fa283cd502860ce97c5 100755 GIT binary patch delta 104430 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

rP`6aT?WVe5p`kEOLlA#8D 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 delta 99427 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

qHrbWrs$ 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 diff --git a/first_app.cpp b/first_app.cpp index 15bc658..18d77df 100644 --- a/first_app.cpp +++ b/first_app.cpp @@ -1,6 +1,8 @@ #include "first_app.hpp" #include "simple_render_system.hpp" #include "rainbow_system.hpp" + +#include "keyboard_movement_controller.hpp" #include "hk_camera.hpp" // libs @@ -11,6 +13,7 @@ // std #include +#include #include @@ -30,18 +33,27 @@ namespace hk SimpleRenderSystem simpleRenderSystem{m_device, m_renderer.getSwapChainRenderPass()}; RainbowSystem rainbowSystem(2000.0f); Camera camera{}; - //camera.setViewDirection(glm::vec3(0.f), glm::vec3(0.5f, 0.f, 1.f)); - camera.setViewTarget(glm::vec3(-1.f, -2.f, -2.f), glm::vec3(0.f, 0.f, 2.5f)); + + auto viewerObject = GameObject::createGameObject(); + KeyboardMovementController cameraController{}; + + auto currentTime = std::chrono::high_resolution_clock::now(); while (!m_window.shouldClose()) { glfwPollEvents(); + + auto newTime = std::chrono::high_resolution_clock::now(); + float frameTime = std::chrono::duration(newTime - currentTime).count(); + currentTime = newTime; + + cameraController.moveInPlaneXZ(m_window.getWindow(), frameTime, viewerObject); + camera.setViewYXZ(viewerObject.m_transform.translation, viewerObject.m_transform.rotation); // update objects color rainbowSystem.update(5.0f, m_gameObjects); float aspect = m_renderer.getAspectRatio(); - //camera.setOrthographicProjection(-aspect, aspect, -1, 1, -1, 1); camera.setPerspectiveProjection(glm::radians(50.f), aspect, 0.1f, 10.f); if (auto commandBuffer = m_renderer.beginFrame()) { diff --git a/hk_camera.cpp b/hk_camera.cpp index 7d6191e..8ef12e7 100644 --- a/hk_camera.cpp +++ b/hk_camera.cpp @@ -43,6 +43,20 @@ namespace hk m_viewMatrix[3][0] = -glm::dot(u, position); m_viewMatrix[3][1] = -glm::dot(v, position); m_viewMatrix[3][2] = -glm::dot(w, position); + + m_inverseViewMatrix = glm::mat4{1.0f}; + m_inverseViewMatrix[0][0] = u.x; + m_inverseViewMatrix[0][1] = u.y; + m_inverseViewMatrix[0][2] = u.z; + m_inverseViewMatrix[1][0] = v.x; + m_inverseViewMatrix[1][1] = v.y; + m_inverseViewMatrix[1][2] = v.z; + m_inverseViewMatrix[2][0] = w.x; + m_inverseViewMatrix[2][1] = w.y; + m_inverseViewMatrix[2][2] = w.z; + m_inverseViewMatrix[3][0] = position.x; + m_inverseViewMatrix[3][1] = position.y; + m_inverseViewMatrix[3][2] = position.z; } void Camera::setViewTarget(glm::vec3 position, glm::vec3 target, glm::vec3 up) { @@ -73,5 +87,19 @@ namespace hk m_viewMatrix[3][0] = -glm::dot(u, position); m_viewMatrix[3][1] = -glm::dot(v, position); m_viewMatrix[3][2] = -glm::dot(w, position); + + m_inverseViewMatrix = glm::mat4{1.0f}; + m_inverseViewMatrix[0][0] = u.x; + m_inverseViewMatrix[0][1] = u.y; + m_inverseViewMatrix[0][2] = u.z; + m_inverseViewMatrix[1][0] = v.x; + m_inverseViewMatrix[1][1] = v.y; + m_inverseViewMatrix[1][2] = v.z; + m_inverseViewMatrix[2][0] = w.x; + m_inverseViewMatrix[2][1] = w.y; + m_inverseViewMatrix[2][2] = w.z; + m_inverseViewMatrix[3][0] = position.x; + m_inverseViewMatrix[3][1] = position.y; + m_inverseViewMatrix[3][2] = position.z; } } // namespace hk \ No newline at end of file diff --git a/hk_camera.hpp b/hk_camera.hpp index c9395e5..f5e66f5 100644 --- a/hk_camera.hpp +++ b/hk_camera.hpp @@ -22,8 +22,10 @@ namespace hk const glm::mat4& getProjection() const { return m_projectionMatrix; } const glm::mat4& getView() const { return m_viewMatrix; } + const glm::mat4& getInverseView() const { return m_inverseViewMatrix; } private: glm::mat4 m_projectionMatrix{1.0f}; glm::mat4 m_viewMatrix{1.0f}; + glm::mat4 m_inverseViewMatrix{1.0f}; }; } // namespace hk \ No newline at end of file diff --git a/hk_window.hpp b/hk_window.hpp index 6fb8216..c88c050 100644 --- a/hk_window.hpp +++ b/hk_window.hpp @@ -16,6 +16,8 @@ namespace hk Window(const Window&) = delete; Window &operator=(const Window&) = delete; + GLFWwindow* getWindow() { return m_window; } + bool shouldClose() { return glfwWindowShouldClose(m_window); } VkExtent2D getExtend() { return {static_cast(m_width), static_cast(m_height)}; } bool wasWindowResized() { return m_framebufferResized; } diff --git a/keyboard_movement_controller.cpp b/keyboard_movement_controller.cpp new file mode 100644 index 0000000..c5a3b10 --- /dev/null +++ b/keyboard_movement_controller.cpp @@ -0,0 +1,42 @@ +#include "keyboard_movement_controller.hpp" + +namespace hk +{ + void KeyboardMovementController::moveInPlaneXZ(GLFWwindow *window, float dt, GameObject &gameObject) + { + glm::vec3 rotate{0}; + if (glfwGetKey(window, m_keys.lookRight) == GLFW_PRESS) rotate.y += 1.f; + if (glfwGetKey(window, m_keys.lookLeft) == GLFW_PRESS) rotate.y -= 1.f; + if (glfwGetKey(window, m_keys.lookUp) == GLFW_PRESS) rotate.x += 1.f; + if (glfwGetKey(window, m_keys.lookDown) == GLFW_PRESS) rotate.x -= 1.f; + + if (glm::dot(rotate, rotate) > std::numeric_limits::epsilon()) + { + gameObject.m_transform.rotation += m_lookSpeed * dt * glm::normalize(rotate); + } + + // limit pitch values between about +/-85ish degrees + gameObject.m_transform.rotation.x = glm::clamp(gameObject.m_transform.rotation.x, -1.5f, 1.5f); + gameObject.m_transform.rotation.y = glm::mod(gameObject.m_transform.rotation.y, glm::two_pi()); + + + float yaw = gameObject.m_transform.rotation.y; + const glm::vec3 forwardDir{sin(yaw), 0.f, cos(yaw)}; + const glm::vec3 rightDir{forwardDir.z, 0.f, -forwardDir.x}; + const glm::vec3 upDir{0.f, -1.f, 0.f}; + + glm::vec3 moveDir{0.f}; + if (glfwGetKey(window, m_keys.moveForward) == GLFW_PRESS) moveDir += forwardDir; + if (glfwGetKey(window, m_keys.moveBackward) == GLFW_PRESS) moveDir -= forwardDir; + if (glfwGetKey(window, m_keys.moveRight) == GLFW_PRESS) moveDir += rightDir; + if (glfwGetKey(window, m_keys.moveLeft) == GLFW_PRESS) moveDir -= rightDir; + if (glfwGetKey(window, m_keys.moveUp) == GLFW_PRESS) moveDir += upDir; + if (glfwGetKey(window, m_keys.moveDown) == GLFW_PRESS) moveDir -= upDir; + + if (glm::dot(moveDir, moveDir) > std::numeric_limits::epsilon()) + { + gameObject.m_transform.translation += m_moveSpeed * dt * glm::normalize(moveDir); + } + } + +} \ No newline at end of file diff --git a/keyboard_movement_controller.hpp b/keyboard_movement_controller.hpp new file mode 100644 index 0000000..34883ff --- /dev/null +++ b/keyboard_movement_controller.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include +#include + +namespace hk +{ + class KeyboardMovementController + { + public: + struct KeyMappings + { + int moveLeft{ GLFW_KEY_A }; + int moveRight{ GLFW_KEY_D }; + int moveForward{ GLFW_KEY_W }; + int moveBackward{ GLFW_KEY_S }; + int moveUp{ GLFW_KEY_E }; + int moveDown{ GLFW_KEY_Q }; + int lookLeft{ GLFW_KEY_LEFT }; + int lookRight{ GLFW_KEY_RIGHT }; + int lookUp{ GLFW_KEY_UP }; + int lookDown{ GLFW_KEY_DOWN }; + }; + + void moveInPlaneXZ(GLFWwindow *window, float dt, GameObject &gameObject); + + KeyMappings m_keys{}; + float m_moveSpeed{ 3.f }; + float m_lookSpeed{ 1.5f }; + }; +} \ No newline at end of file diff --git a/simple_render_system.cpp b/simple_render_system.cpp index 166339f..8f6a5f8 100644 --- a/simple_render_system.cpp +++ b/simple_render_system.cpp @@ -70,13 +70,10 @@ namespace hk { m_pipeline->bind(commandBuffer); - auto projectionView = camera.getProjection() * camera.getView(); + auto projectionView = camera.getProjection() * camera.getInverseView(); for (auto &obj : gameObjects) { - obj.m_transform.rotation.y = glm::mod(obj.m_transform.rotation.y + 0.01f, glm::two_pi()); - obj.m_transform.rotation.x = glm::mod(obj.m_transform.rotation.x + 0.005f, glm::two_pi()); - SimplePushConstantData push{}; push.color = obj.m_color; push.transform = projectionView * obj.m_transform.mat4();