#include #include "renderer.h" #include "game.h" void loop(Renderer& renderer) { Game game; int playerSpriteId = game.addSprite(Sprite("../res/lucas.png", renderer)); renderer.render(game); size_t inputDt = 50; size_t inputAcc = 0; size_t lastTime = SDL_GetTicks(); for (;;) { size_t currentTime = SDL_GetTicks(); size_t frameTime = currentTime - lastTime; lastTime = currentTime; SDL_Event e; while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { return; } } Sprite& playerSprite = game.getSprite(playerSpriteId); const Uint8* state = SDL_GetKeyboardState(NULL); inputAcc += frameTime; while (inputAcc > inputDt) { inputAcc -= inputDt; if (state[SDL_SCANCODE_LEFT]) { playerSprite.setX(playerSprite.getX()-8); } if (state[SDL_SCANCODE_RIGHT]) { playerSprite.setX(playerSprite.getX()+8); } if (state[SDL_SCANCODE_UP]) { playerSprite.setY(playerSprite.getY()-8); } if (state[SDL_SCANCODE_DOWN]) { playerSprite.setY(playerSprite.getY()+8); } } renderer.render(game); } } int main(int, char**) { try { Renderer renderer; loop(renderer); } catch (const sdl_error& ex) { std::cout << "SDL error (" << ex.what() << ")" << std::endl; } return 0; }