int main(int argc, char **argv) { SDL_Event e; MyWindow* window = new MyWindow("Handle Key Press Event", 800, 600); window->updateSurface(bmpDefault->getSurface()); while (window->isRunning()) { while (SDL_PollEvent(&e)) { switch (e.type) { case SDL_QUIT: window->setRunning(false); break; case SDL_KEYDOWN: handleKeyDownEvent(e, window); break; default: break; } } } closeSDL(window->getWindow()); return 0; }
void SDLWindow::handlePollEvent() { while (SDL_PollEvent(&m_sdlEvent)) { switch (m_sdlEvent.type) { case SDL_WINDOWEVENT: { handleWindowEvent(); } break; case SDL_KEYUP: { handleKeyUpEvent(); } break; case SDL_KEYDOWN: { handleKeyDownEvent(); } break; case SDL_QUIT: { onClose(); } break; } } }
void Tetris::handleEvent( TetrisEvent& event ){ switch ( event.type() ) { case SDL_QUIT: m_Quit = true; break; case SDL_KEYDOWN: handleKeyDownEvent( event.keyCode() ); break; case SDL_KEYUP: handleKeyUpEvent( event.keyCode() ); break; default: break; } }