/* Name Game::run Syntax Game::run() Brief Runs the main game loop */ void Game::run() { int time0 = getUpdateFrame(); int time1 = 0; float deltaTime = 0; float tickTime = static_cast<float>(1000/UPS); // Loop forever, until the user or the OS performs some action to quit the app while (!s3eDeviceCheckQuitRequest() && !(s3eKeyboardGetState(s3eKeyEsc) & S3E_KEY_STATE_DOWN) && !(s3eKeyboardGetState(s3eKeyAbsBSK) & S3E_KEY_STATE_DOWN) ) { // Update IwGx state time stamp IwGxTickUpdate(); time1 = getUpdateFrame(); deltaTime = 0; // Update the state logic every tick time, or until the FPS drops below 10 int frames = time1 - time0; frames = MIN(MAX_UPDATES, frames); while (frames--) { // Time-critical updates, such as AI update(); deltaTime += tickTime; } // Any updates which are not time-critical e.g. player input independentUpdate(deltaTime); time0 = time1; render(); // Sleep for 0ms to allow the OS to process events etc. s3eDeviceYield(0); } }
bool CameraViewUpdate() { if (viewFightInitRequired()) initFightView(); bool ghostAvailable = getGameState()->getGhost() != NULL; // Clear the screen IwGxClear(IW_GX_COLOUR_BUFFER_F | IW_GX_DEPTH_BUFFER_F); if (ghostAvailable && (!gameIsHalt() || getGameState()->getGhost()->isDead())) { updateGhost(); } renderCamera(); setupPlayer(); if (ghostAvailable) renderGhost(); playerAttackView->Render(); playerHit->Render(); manaBar->Render(); cameraDefend->Update(); cameraDefend->Render(); tutorialView->Render(); IwGxFlush(); IwGxSwapBuffers(); IwGxTickUpdate(); return true; }
void Graphics::postRender() { IwGxTickUpdate(); IwGxFlush(); IwGxSwapBuffers(); }
void Game::Update( const s3e_uint64_t dt ) { GameState::UpdateCurrentState( dt ); m_soundManager->Update(); IwGxTickUpdate(); }