ADD: Move Camera

This commit is contained in:
sebastian 2026-08-02 13:51:24 +02:00
parent ef72cb56c6
commit 92e3092d3b
10 changed files with 23 additions and 17 deletions

View File

@ -4,6 +4,9 @@
#include "CameraController.h"
#include <iostream>
#include <ostream>
#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);
}

View File

@ -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() {}

View File

@ -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);
}
}

View File

@ -31,7 +31,7 @@ namespace engine {
}
}
void onUpdate();
void onUpdate(float deltaTime);
void onRender();
void onRegisterLoadedAsset(LoadedAsset loadedAsset);

View File

@ -22,7 +22,7 @@ void engine::SceneManager::switchTo(std::unique_ptr<Scene> 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);
}
}

View File

@ -16,7 +16,7 @@ namespace engine {
public:
explicit SceneManager(InputContextStack& inputStack) :m_inputStack(inputStack) {}
void switchTo(std::unique_ptr<Scene> scene, std::function<void()> onSceneLoaded = nullptr);
void update();
void update(float deltaTime);
void render() const;
~SceneManager() = default;

View File

@ -3,6 +3,9 @@
//
#include "Camera.h"
#include <format>
#include <iostream>
#include <glm/gtc/matrix_transform.hpp>
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;
}

View File

@ -12,7 +12,7 @@
void ColorRaceApp::onUpdate(float deltaTime) {
getSceneManager().update();
getSceneManager().update(deltaTime);
}
void ColorRaceApp::onRender() {

View File

@ -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<TransformComponent>();
for (const auto& [entity, transform] : transformComponentPool) {
@ -37,7 +37,7 @@ void GameLayer::onUpdate() {
m_entityRegistry.addComponent<TransformComponent>(entity, updatedTransform);
}
m_cameraController->update(getKeyboard(), *m_camera, 1);
m_cameraController->update(getKeyboard(), *m_camera, deltaTime);
}

View File

@ -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<engine::MeshRenderer>()), m_pointLight(std::move(light)){}
void onUpdate() override;
void onUpdate(float deltaTime) override;
void onRender() override;
protected:
void onAttachImpl() override;