#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.controllable = true; entity.colliderType = ColliderType::player; entity.colorVal = 180; Simulation::id_type crateId = sim.emplaceEntity(); Entity& crate = sim.getEntity(crateId); crate.gridPos.x() = 4; crate.gridPos.y() = 5; crate.size = TILE_SIZE; crate.speed = 4.0; crate.playerCanPush = 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); } }