diff --git a/ECS/Components/Movement.h b/ECS/Components/Movement.h
index 4769618..f8b2ae1 100644
--- a/ECS/Components/Movement.h
+++ b/ECS/Components/Movement.h
@@ -10,7 +10,7 @@ struct Movement {
glm::vec3 speed;
- glm::ivec3 moving;
+ glm::ivec3 moving = glm::ivec3(0, 0, 0);
glm::vec3 velocity;
};
diff --git a/ECS/Components/Transform.h b/ECS/Components/Transform.h
index 4b837be..c2351db 100644
--- a/ECS/Components/Transform.h
+++ b/ECS/Components/Transform.h
@@ -41,6 +41,10 @@ struct Transform {
origin = position;
}
+ void add_to_origin(glm::vec3 addition) {
+ origin += addition;
+ }
+
void set_rotation_from_quat(glm::quat quaternion) {
// Remember translation
glm::vec4 save = matrix[3];
diff --git a/ECS/Systems/KeyboardMovementSystem.h b/ECS/Systems/KeyboardMovementSystem.h
index 9b87408..ccbd7ba 100644
--- a/ECS/Systems/KeyboardMovementSystem.h
+++ b/ECS/Systems/KeyboardMovementSystem.h
@@ -63,7 +63,7 @@ class KeyboardMovementSystem : public EntitySystem, public EventSubscribereach(
[&](Entity *ent, ComponentHandle transform, ComponentHandle movement) {
- transform->translate(glm::vec3(movement->moving) * movement->speed * deltaTime);
+ transform->add_to_origin(transform->matrix * glm::vec4((glm::vec3(movement->moving) * movement->speed * deltaTime), 0.0));
});
}
diff --git a/main.cpp b/main.cpp
index 5b16558..27309e3 100644
--- a/main.cpp
+++ b/main.cpp
@@ -88,10 +88,10 @@ int main() {
Entity *player = world->create();
player->assign();
- //player->assign(glm::vec3(2.f, 2.f, 2.f));
- //player->assign(0.1);
+ player->assign(glm::vec3(2.f, 2.f, 2.f));
+ player->assign(0.1);
player->assign(70.0f, 1280, 720, 0.1f, 100.0f);
- player->assign(10.0, PathMove::Path(std::vector{
+ /*player->assign(10.0, PathMove::Path(std::vector{
glm::vec3(0.0, 2.0, 0.0),
glm::vec3(-2.0, 2.0, -1.0),
glm::vec3(-1.0, 2.0, -2.0),
@@ -109,7 +109,7 @@ int main() {
glm::angleAxis(glm::radians(120.f), glm::vec3(0.f, 1.f, 0.f)),
glm::angleAxis(glm::radians(180.f), glm::vec3(0.f, 1.f, 0.f))
})
- );
+ );*/
Entity *monkey = world->create();
monkey->assign();