3#include "Logger/Logger.hpp"
4#include "components/Transform.hpp"
5#include "components/Velocity.hpp"
8namespace rtk::systems {
25 void onStart(rtk::ecs::Registry &)
override {
26 LOG_INFO(
"Load Movement System");
34 void update(rtk::ecs::Registry ®,
float dt)
override {
40 for (
auto entity : view) {
41 auto *transform = transforms.get(entity);
42 auto *velocity = velocities.get(entity);
44 if (!transform || !velocity) {
48 transform->
position.
x += velocity->x * dt;
49 transform->position.y += velocity->y * dt;
56 void onStop(rtk::ecs::Registry &)
override {}
Moves entities according to their Velocity.
Definition MovementSystem.hpp:17
void onStart(rtk::ecs::Registry &) override
Logs that the system is loaded.
Definition MovementSystem.hpp:25
void update(rtk::ecs::Registry ®, float dt) override
Adds velocity times elapsed time to every position.
Definition MovementSystem.hpp:34
void onStop(rtk::ecs::Registry &) override
Does nothing.
Definition MovementSystem.hpp:56
Linear speed of an entity.
Definition Velocity.hpp:17
float x
Horizontal component.
Definition vec2.hpp:13