From 8ffb27ab09ff567a159e5be5a243fd3967084977 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 3 Feb 2019 16:10:44 -0500 Subject: Very basic ECS --- src/main.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main.cpp (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..1b74143 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,60 @@ +#include "renderer.h" + +#include +#include "simulation.h" +#include "level.h" + +int main(int, char**) +{ + std::random_device randomEngine; + std::mt19937 rng(randomEngine()); + + Renderer renderer; + Level level; + Simulation sim(level); + + Simulation::id_type player = sim.emplaceEntity(); + Entity& entity = sim.getEntity(player); + entity.gridPos.x() = 1; + entity.gridPos.y() = 5; + entity.size = TILE_SIZE; + entity.speed = 3.0; + entity.player = true; + + bool quit = false; + + SDL_Event e; + size_t lastTime = SDL_GetTicks(); + + while (!quit) + { + size_t currentTime = SDL_GetTicks(); + size_t frameTime = currentTime - lastTime; + lastTime = currentTime; + + while (SDL_PollEvent(&e)) + { + if (e.type == SDL_QUIT) + { + quit = true; + } else if (e.type == SDL_KEYDOWN) + { + switch (e.key.keysym.sym) + { + case SDLK_ESCAPE: + { + quit = true; + + break; + } + } + } + } + + const Uint8* state = SDL_GetKeyboardState(NULL); + + sim.tick(frameTime / 1000.0, state); + + renderer.render(sim); + } +} -- cgit 1.4.1