Adding skeleton

This commit is contained in:
Dynamitos
2024-04-22 12:47:05 +02:00
parent ad8f30f26e
commit 3895fbb3d3
19 changed files with 491 additions and 35 deletions
+4
View File
@@ -0,0 +1,4 @@
target_sources(MeshShadingDemo
PUBLIC
FlyCamSystem.h
FlyCamSystem.cpp)
+48
View File
@@ -0,0 +1,48 @@
#include "FlyCamSystem.h"
#include "Seele/System/ComponentSystem.h"
FlyCamSystem::FlyCamSystem(PScene scene)
: System::ComponentSystem<Component::KeyboardInput, Component::Camera, Component::Transform>(scene) {}
FlyCamSystem::~FlyCamSystem() {}
void FlyCamSystem::update(Component::KeyboardInput& input, Component::Camera& camera, Component::Transform& transform) {
float cameraMove = static_cast<float>(deltaTime);
if(input.keys[KeyCode::KEY_LEFT_SHIFT])
{
cameraMove *= 100;
}
Vector forward = transform.getForward();
Vector side = transform.getRight();
Vector moveVector = Vector();
if(input.keys[KeyCode::KEY_W])
{
moveVector += forward * cameraMove;
}
if(input.keys[KeyCode::KEY_S])
{
moveVector += forward * -cameraMove;
}
if(input.keys[KeyCode::KEY_A])
{
moveVector += side * cameraMove;
}
if(input.keys[KeyCode::KEY_D])
{
moveVector += side * -cameraMove;
}
if(input.keys[KeyCode::KEY_E])
{
moveVector += Vector(0, cameraMove, 0);
}
if(input.keys[KeyCode::KEY_Q])
{
moveVector += Vector(0, -cameraMove, 0);
}
transform.translate(moveVector);
if(input.mouse2)
{
camera.mouseMove(input.deltaX, input.deltaY);
}
}
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include "Define.h"
#include "Seele/MinimalEngine.h"
#include <Seele/Scene/Scene.h>
#include <Seele/System/ComponentSystem.h>
#include <Seele/Component/Camera.h>
#include <Seele/Component/KeyboardInput.h>
class FlyCamSystem : public System::ComponentSystem<
Component::KeyboardInput,
Component::Camera,
Component::Transform>
{
public:
FlyCamSystem(PScene scene);
virtual ~FlyCamSystem();
virtual void update(Seele::Component::KeyboardInput& input, Seele::Component::Camera& camera, Seele::Component::Transform& transform) override;
private:
float lastMouseX;
float lastMouseY;
};
DEFINE_REF(FlyCamSystem)