From 92e3092d3b75f1bd29b322d511280ea1101e422a Mon Sep 17 00:00:00 2001 From: sebastian Date: Sun, 2 Aug 2026 13:51:24 +0200 Subject: [PATCH] ADD: Move Camera --- .../inputsOutputs/controller/CameraController.cpp | 12 ++++++++---- engine/src/layer/Layer.h | 2 +- engine/src/layer/Scene.cpp | 4 ++-- engine/src/layer/Scene.h | 2 +- engine/src/layer/SceneManager.cpp | 4 ++-- engine/src/layer/SceneManager.h | 2 +- engine/src/renderer/entities/Camera.cpp | 4 +++- game/src/ColorRaceApp.cpp | 2 +- game/src/GameLayer.cpp | 6 +++--- game/src/GameLayer.h | 2 +- 10 files changed, 23 insertions(+), 17 deletions(-) diff --git a/engine/src/core/inputsOutputs/controller/CameraController.cpp b/engine/src/core/inputsOutputs/controller/CameraController.cpp index 481187c..7485876 100644 --- a/engine/src/core/inputsOutputs/controller/CameraController.cpp +++ b/engine/src/core/inputsOutputs/controller/CameraController.cpp @@ -4,6 +4,9 @@ #include "CameraController.h" +#include +#include + #include "GLFW/glfw3.h" #include "glm/vec3.hpp" #include "renderer/entities/Camera.h" @@ -11,8 +14,9 @@ void engine::CameraController::update(const Keyboard &keyboard, Camera &camera, float deltaTime) { if (!m_stack.isActive(*m_gameContext.get())) return; - if (keyboard.isKeyDown(GLFW_KEY_W)) camera.moveRelative(glm::vec3(0.0f, 0.0f, 1.0f), 10.0f * deltaTime, deltaTime); - if (keyboard.isKeyDown(GLFW_KEY_S)) camera.moveRelative(glm::vec3(0.0f, 0.0f, -1.0f), 10.0f * deltaTime, deltaTime); - if (keyboard.isKeyDown(GLFW_KEY_A)) camera.moveRelative(glm::vec3(-1.0f, 0.0f, 0.0f), 10.0f * deltaTime, deltaTime); - if (keyboard.isKeyDown(GLFW_KEY_D)) camera.moveRelative(glm::vec3(1.0f, 0.0f, 0.0f), 10.0f * deltaTime, deltaTime); + + if (keyboard.isKeyDown(GLFW_KEY_W)) camera.moveRelative(glm::vec3(0.0f, 0.0f, 1.0f), 10.0f, deltaTime); + if (keyboard.isKeyDown(GLFW_KEY_S)) camera.moveRelative(glm::vec3(0.0f, 0.0f, -1.0f), 10.0f, deltaTime); + if (keyboard.isKeyDown(GLFW_KEY_A)) camera.moveRelative(glm::vec3(-1.0f, 0.0f, 0.0f), 10.0f, deltaTime); + if (keyboard.isKeyDown(GLFW_KEY_D)) camera.moveRelative(glm::vec3(1.0f, 0.0f, 0.0f), 10.0f, deltaTime); } diff --git a/engine/src/layer/Layer.h b/engine/src/layer/Layer.h index 2337c51..994ad0c 100644 --- a/engine/src/layer/Layer.h +++ b/engine/src/layer/Layer.h @@ -17,7 +17,7 @@ namespace engine { virtual ~Layer() = default; void onAttach(InputContextStack& inputStack); void onDetach(InputContextStack& inputStack); - virtual void onUpdate() {} + virtual void onUpdate(float deltaTime) {} virtual void onRender() {} protected: virtual void onAttachImpl() {} diff --git a/engine/src/layer/Scene.cpp b/engine/src/layer/Scene.cpp index 9e01875..513bde9 100644 --- a/engine/src/layer/Scene.cpp +++ b/engine/src/layer/Scene.cpp @@ -10,9 +10,9 @@ #include "core/inputsOutputs/context/InputContextStack.h" -void engine::Scene::onUpdate() { +void engine::Scene::onUpdate(float deltaTime) { for (const auto& layer : m_layers) { - layer->onUpdate(); + layer->onUpdate(deltaTime); } } diff --git a/engine/src/layer/Scene.h b/engine/src/layer/Scene.h index 351de13..64f5727 100644 --- a/engine/src/layer/Scene.h +++ b/engine/src/layer/Scene.h @@ -31,7 +31,7 @@ namespace engine { } } - void onUpdate(); + void onUpdate(float deltaTime); void onRender(); void onRegisterLoadedAsset(LoadedAsset loadedAsset); diff --git a/engine/src/layer/SceneManager.cpp b/engine/src/layer/SceneManager.cpp index 2e6b522..5698e3f 100644 --- a/engine/src/layer/SceneManager.cpp +++ b/engine/src/layer/SceneManager.cpp @@ -22,7 +22,7 @@ void engine::SceneManager::switchTo(std::unique_ptr scene, std::function< assetLoader.start(); } -void engine::SceneManager::update() { +void engine::SceneManager::update(float deltaTime) { if (nextScene) { auto uploadedAssets = assetLoader.processUploadQueue(2); std::cout << "Uploaded Assets: " << uploadedAssets.size() << std::endl; @@ -49,7 +49,7 @@ void engine::SceneManager::update() { } if (currentScene) { - currentScene->onUpdate(); + currentScene->onUpdate(deltaTime); } } diff --git a/engine/src/layer/SceneManager.h b/engine/src/layer/SceneManager.h index cd1a238..fb27686 100644 --- a/engine/src/layer/SceneManager.h +++ b/engine/src/layer/SceneManager.h @@ -16,7 +16,7 @@ namespace engine { public: explicit SceneManager(InputContextStack& inputStack) :m_inputStack(inputStack) {} void switchTo(std::unique_ptr scene, std::function onSceneLoaded = nullptr); - void update(); + void update(float deltaTime); void render() const; ~SceneManager() = default; diff --git a/engine/src/renderer/entities/Camera.cpp b/engine/src/renderer/entities/Camera.cpp index 8aea57e..d6062b9 100644 --- a/engine/src/renderer/entities/Camera.cpp +++ b/engine/src/renderer/entities/Camera.cpp @@ -3,6 +3,9 @@ // #include "Camera.h" + +#include +#include #include glm::vec3 engine::Camera::getForward() const { // Yaw um Y-Achse, Pitch um lokale X-Achse — Standard-FPS-Konvention @@ -27,7 +30,6 @@ void engine::Camera::moveRelative(const glm::vec3 &direction, float speed, float if (worldOffset != glm::vec3(0.0f)) { worldOffset = glm::normalize(worldOffset); } - m_position += worldOffset * speed * deltaTime; } diff --git a/game/src/ColorRaceApp.cpp b/game/src/ColorRaceApp.cpp index d10ad2c..8591307 100644 --- a/game/src/ColorRaceApp.cpp +++ b/game/src/ColorRaceApp.cpp @@ -12,7 +12,7 @@ void ColorRaceApp::onUpdate(float deltaTime) { - getSceneManager().update(); + getSceneManager().update(deltaTime); } void ColorRaceApp::onRender() { diff --git a/game/src/GameLayer.cpp b/game/src/GameLayer.cpp index 15ec3b3..434caba 100644 --- a/game/src/GameLayer.cpp +++ b/game/src/GameLayer.cpp @@ -26,8 +26,8 @@ void GameLayer::onDetachImpl() { } -void GameLayer::onUpdate() { - Layer::onUpdate(); +void GameLayer::onUpdate(float deltaTime) { + Layer::onUpdate(deltaTime); auto transformComponentPool = m_entityRegistry.getPool(); for (const auto& [entity, transform] : transformComponentPool) { @@ -37,7 +37,7 @@ void GameLayer::onUpdate() { m_entityRegistry.addComponent(entity, updatedTransform); } - m_cameraController->update(getKeyboard(), *m_camera, 1); + m_cameraController->update(getKeyboard(), *m_camera, deltaTime); } diff --git a/game/src/GameLayer.h b/game/src/GameLayer.h index 1196af5..f5753ea 100644 --- a/game/src/GameLayer.h +++ b/game/src/GameLayer.h @@ -20,7 +20,7 @@ public: engine::Keyboard& keyboard, engine::Mouse& mouse) : Layer(keyboard, mouse), m_entityRegistry(entityRegistry), m_camera(std::move(cam)), m_renderer(std::make_unique()), m_pointLight(std::move(light)){} - void onUpdate() override; + void onUpdate(float deltaTime) override; void onRender() override; protected: void onAttachImpl() override;