//change the state (after fadeOut is done) void Settings::changeState(Game& game){ if (m_fadingAlpha >= 255){ if (m_selection == 0)//diff game.ChangeState(Game::gameStates::DIFFSET); else if (m_selection == 1)//sound game.ChangeState(Game::gameStates::SOUNDSET); else if (m_selection == 2)//graphics game.ChangeState(Game::gameStates::GRAPHICSET); else//back game.ChangeState(Game::gameStates::MAINMENU); } }
//change the state (after fadeOut is done) void SoundSet::changeState(Game& game){ //Go back to Settings if (m_fadingAlpha >= 255){ game.ChangeState(Game::gameStates::SETTINGS); } }
int main(int argc, char** argv) { // Initialize the program bool cont = true; int fps = 30; Timer fpsTimer; Game game; if (game.Init()) { // Main program loop while (cont) { fpsTimer.Start(); game.Event(); game.Logic(); game.Render(); cont = game.ChangeState(); // Manage FPS if (fpsTimer.GetTime() < 1000/fps) { SDL_Delay((1000/fps) - fpsTimer.GetTime()); } //double cur_fps = 1000/fpsTimer.GetTime(); //printf("%f\n", cur_fps); } fpsTimer.Stop(); } // Close down and clean up return 0; }
void Intro::Update(Game &game){ elapsedTime = (float)pClock.restart().asMilliseconds(); y -= bgSpeed * elapsedTime; introSprite.setPosition(0, y); if (y <= -1200) game.ChangeState(Game::gameStates::PLAY); }
void Intro::HandleEvents(Game &game){ sf::Event pEvent; while (game.window.pollEvent(pEvent)) { if (pEvent.type == sf::Event::Closed) game.setRunning(false); if (pEvent.type == sf::Event::KeyPressed){ if (pEvent.key.code == sf::Keyboard::Escape) game.setRunning(false); if (pEvent.key.code == sf::Keyboard::Return) game.ChangeState(Game::gameStates::PLAY); } } if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)){ game.ChangeState(Game::gameStates::PLAY); } }
void Highscore::HandleEvents(Game &game){ sf::Event pEvent; while (game.window.pollEvent(pEvent)){ //close if (pEvent.type == sf::Event::Closed) game.setRunning(false); //menu if (pEvent.type == sf::Event::KeyPressed){ if (pEvent.key.code == sf::Keyboard::Return) game.ChangeState(Game::gameStates::MAINMENU); } } }
int main(int argc, char*argv[]) { Game game; game.Init("Space Shooter",Settings::ScreenWidth,Settings::ScreenHeight,32,false); game.ChangeState(LogoState::Instance()); while(game.Running()) { game.HandleEvents(); game.Update(); game.Draw(); } printf("about to call cleanup\n"); game.Cleanup(); return 0; }
void PlayState::HandleEvents(Game &game){ sf::Event pEvent; while (game.window.pollEvent(pEvent)) { if (pEvent.type == sf::Event::Closed) game.setRunning(false); if (pEvent.type == sf::Event::KeyPressed){ if (pEvent.key.code == sf::Keyboard::Escape){ if (!paused) StartPause(); else game.ChangeState(Game::gameStates::MAINMENU); } if (pEvent.key.code == sf::Keyboard::Return && paused) EndPause(); } } }
void PlayState::Render(Game &game){ bg.Render(game.window); if (player1.getActiveBool()) if (!paused) HandleDraws(game); if (paused){ messageHandler.Render(game.window, "pauseText"); messageHandler.Render(game.window, "pausedInfo"); } //draw HUD hudHealth.Render(game.window); hud.Render(game.window); messageHandler.Render(game.window, "pHealthS"); health.Render(game.window); messageHandler.Render(game.window, ""); weapon.Render(game.window); //new Weapon draw messageHandler.UpdatelvUp(points, showLvUp, game.window, elapsedTime); //draw Pew cooldown if (gotPew && player1.getActiveBool()){ pewCD.Render(game.window); } //Game over if (!player1.getActiveBool()){ game.highscore.setPoints(points); messageHandler.Render(game.window, "gameOver"); game.window.display(); ClearStuff(); sf::sleep(sf::seconds(1)); game.ChangeState(Game::gameStates::HIGHSCORE); } }
//change the state (after fadeOut is done) void HighscoreList::changeState(Game& game){ if (m_fadingAlpha >= 255){ //Do Screen stuff game.ChangeState(Game::gameStates::MAINMENU); } }