diff --git a/parts/mdl/vulkanwindow.cpp b/parts/mdl/vulkanwindow.cpp index 846f5db..5f406d7 100644 --- a/parts/mdl/vulkanwindow.cpp +++ b/parts/mdl/vulkanwindow.cpp @@ -185,6 +185,9 @@ void VulkanWindow::render() return; } + const float deltaTime = timer.nsecsElapsed() / 1000000000.0f; + timer.restart(); + ImGui::SetCurrentContext(m_renderer->ctx); auto &io = ImGui::GetIO(); @@ -221,8 +224,8 @@ void VulkanWindow::render() forward = normalize(glm::angleAxis(part->yaw, glm::vec3(0, 1, 0)) * glm::angleAxis(part->pitch, glm::vec3(1, 0, 0)) * glm::vec3(0, 0, 1)); right = normalize(glm::angleAxis(part->yaw, glm::vec3(0, 1, 0)) * glm::vec3(1, 0, 0)); - part->position += right * movX * 2.0f; - part->position += forward * movY * 2.0f; + part->position += right * movX * 50.0f * deltaTime; + part->position += forward * movY * 50.0f * deltaTime; m_renderer->camera.view = glm::mat4(1.0f); m_renderer->camera.view = glm::translate(m_renderer->camera.view, part->position); diff --git a/parts/mdl/vulkanwindow.h b/parts/mdl/vulkanwindow.h index 1014cf9..3133cd1 100644 --- a/parts/mdl/vulkanwindow.h +++ b/parts/mdl/vulkanwindow.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include "imgui.h" @@ -30,4 +31,5 @@ private: QVulkanInstance *m_instance; MDLPart *part; bool pressed_keys[4] = {}; + QElapsedTimer timer; };