void Engine::EngineLoop( ) { SDL_Event currentEvent; startTick = SDL_GetTicks( ); while( SDL_PollEvent( ¤tEvent ) ) { switch( currentEvent.type ) { case SDL_QUIT: engineState = Engine::exiting; break; case SDLK_ESCAPE: engineState = Engine::showingMenu; break; } if( currentEvent.type == SDL_KEYDOWN && engineState == Engine::playing ) { switch( currentEvent.key.keysym.sym ) { case SDLK_KP1: if( player.getBonus() ) player.setDirection( 5 ); else player.setDirection( 6 ); player.Move( ); break; case SDLK_KP2: if( player.getBonus() ) player.setDirection( 4 ); else player.setDirection( 3 ); player.Move( ); break; case SDLK_KP3: if( player.getBonus() ) player.setDirection( 6 ); else player.setDirection( 5 ); player.Move( ); break; case SDLK_KP4: if( player.getBonus() ) player.setDirection( 1 ); else player.setDirection( 2 ); player.Move( ); break; case SDLK_KP6: if( player.getBonus() ) player.setDirection( 2 ); else player.setDirection( 1 ); player.Move( ); break; case SDLK_KP7: if( player.getBonus() ) player.setDirection( 7 ); else player.setDirection( 8 ); player.Move( ); break; case SDLK_KP8: if( player.getBonus() ) player.setDirection( 3 ); else player.setDirection( 4 ); player.Move( ); break; case SDLK_KP9: if( player.getBonus() ) player.setDirection( 8 ); else player.setDirection( 7 ); player.Move( ); break; } } } switch( engineState ) { case Engine::playing: Game( ); break; case Engine::showingDeath: showDeath( ); break; case Engine::showingSplash: showSplash( ); break; case Engine::showingMenu: showMenu( ); break; case Engine::restart: Restart( ); break; case Engine::starting: Starting( ); break; case Engine::showingHighscore: showHighScore( ); break; case Engine::enteringName: enterName( ); break; } SDL_Flip( screen ); if( SDL_GetTicks( ) - startTick < 1000 / 30 ) { SDL_Delay( ( 1000 / 30 ) - (SDL_GetTicks() - startTick) ); } }
void QTestableDBusServer::doStarting() { emit Starting(); }