Exemple #1
0
/*
	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);
	}
}
Exemple #2
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;
}
Exemple #3
0
void Graphics::postRender()
{
	IwGxTickUpdate();
	IwGxFlush();
	IwGxSwapBuffers();
}
void Game::Update( const s3e_uint64_t dt )
{
	GameState::UpdateCurrentState( dt );
	m_soundManager->Update();
	IwGxTickUpdate();
}