#include #include "renderer.h" #include "game.h" #include "party.h" void loop(Renderer& renderer) { Game game; Input keystate; int kumaSprite = game.addSprite(Sprite("../res/kumatora.png", renderer, 17, 31)); int lucasSprite = game.addSprite(Sprite("../res/lucas.png", renderer, 17, 27)); Party party; party.addMember(game, lucasSprite); party.addMember(game, kumaSprite); 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; } } const Uint8* state = SDL_GetKeyboardState(NULL); keystate.left = state[SDL_SCANCODE_LEFT]; keystate.right = state[SDL_SCANCODE_RIGHT]; keystate.up = state[SDL_SCANCODE_UP]; keystate.down = state[SDL_SCANCODE_DOWN]; inputAcc += frameTime; while (inputAcc > inputDt) { inputAcc -= inputDt; party.move(game, keystate); } 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; }