void CameraC::update(const float & dt) { if (updatedFlag) { updateProjection(); updatedFlag = false; } // need to control by mouse mah if (mouseControl) MouseControl(dt); // check what mode is this mode == FPS ? FPSTargetUpdate() : TPSPositionUpdate(); // finally update my damn view updateView(); frustum->setVP(getVP()); }
void GameLoop( sf::RenderWindow &app, bool &bczyGra, bool &bMenu ) { ResetGame(); bool pauseGame = false; sf::Mouse::setPosition( sf::Vector2i( Width / 2, Height / 2 ), app ); app.setMouseCursorVisible( false ); sounds[2].play(); while ( bczyGra ) { LoopTime = TimeLoop.GetElapsedSeconds(); TimeLoop.Reset(); sf::Event event; while (app.pollEvent(event)) { if (event.type == sf::Event::Closed) { bczyGra = false; bMenu = false; app.close(); } else if (event.type == sf::Event::Resized) { ChangeSize( event.size.width, event.size.height ); } else if ( ( event.type == sf::Event::KeyReleased ) && ( event.key.code == sf::Keyboard::Escape ) ){ bczyGra = false; bMenu = true; } if ( ( ( event.type == sf::Event::JoystickButtonReleased ) && ( event.joystickButton.button == 0 ) ) || ( event.type == sf::Event::KeyReleased && event.key.code == sf::Keyboard::P ) ){ pauseGame = !pauseGame; if ( pauseGame == true ) { app.setMouseCursorVisible( true ); sounds[2].pause(); } else { sf::Mouse::setPosition( sf::Vector2i( Width / 2, Height / 2 ), app ); app.setMouseCursorVisible( false ); LoopTime = 0.0f; TimeLoop.Reset(); sounds[2].play(); } } } KeyControl( LoopTime, app ); if ( !pauseGame ) { MoveMouse( sf::Mouse::getPosition( app ).x, sf::Mouse::getPosition( app ).y, app ); MouseControl( LoopTime ); Joystick( LoopTime, app ); if ( Player.getLife() < 0 ) { bczyGra = false; bMenu = true; } Logika( LoopTime ); RenderScene(); app.display(); } } sounds[2].stop(); hud.sendScore(); }