bool Update(float dt){dt; if (isEditingSpaceship){ editor.Update(); if (editor.IsExited() || editor.IsSpaceshipReady()){ isEditingSpaceship = false; if (editor.IsSpaceshipReady()){ // ship = editor.GetSpaceship(); } editor.Reset(); } } else{ if(!isMainMenu && !isControls){ lvl.Update(dt); manager->Update(false, 0.0f, Vector2(), dt); if (lvl.IsWin() || lvl.IsGameOver()){ isMainMenu = true; } } else if (isControls){ isControls = Controls::Update(); if (!isControls){ isMainMenu = true; } } else{ menu.Update(dt); UpdateGameState(); } } if (Input::IsPressed('O')){ isEditingSpaceship = true; } bool requestedExit = (Input::IsPressed(Input::KEY_ESCAPE)); if (requestedExit){ profiler.WriteToFile(); END_LOG } return requestedExit; }
bool GameStateA::Update(float deltatime, sf::RenderWindow &m_window, Level& level) { sf::Event event; while (m_window.pollEvent(event)) { if (event.type == sf::Event::Closed) { m_window.close(); return false; } if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) { m_window.close(); return false; } } if (m_first_run) { m_first_run = false; } m_window.clear(sf::Color(104, 50, 3, 0)); if(level.Update(m_window, deltatime)){ m_next_state = "CombatState"; m_continue = false; } m_window.display(); return m_continue; };
int main() { srand(time(0)); sf::ContextSettings settings; settings.antialiasingLevel = 8; // create the window sf::RenderWindow window(sf::VideoMode(928, 448), "Labshooter", sf::Style::Default, settings); sf::Clock clock; sf::Texture playerTexture; playerTexture.loadFromFile("assets/player.png"); sf::Texture tileTexture; tileTexture.loadFromFile("assets/tile.png"); sf::Sprite playerSprite; playerSprite.setTexture(playerTexture); sf::Sprite tileSprite; tileSprite.setTexture(tileTexture); SoundManager::LoadSound("shoot", "assets/shoot.wav"); SoundManager::LoadSound("shoot2", "assets/shoot2.wav"); SoundManager::LoadSound("hurt", "assets/hurt.wav"); level.LoadLevel("assets/level1"); // run the program as long as the window is open while (window.isOpen()) { sf::Time elapsed = clock.restart(); // check all the window's events that were triggered since the last iteration of the loop sf::Event event; while (window.pollEvent(event)) { // "close requested" event: we close the window if (event.type == sf::Event::Closed) window.close(); } level.Update(elapsed.asMilliseconds()); /*if(sf::Keyboard::isKeyPressed(sf::Keyboard::D)) { move(0.5 * elapsed.asMilliseconds(), 0, playerSprite, tileSprite); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)) { move(-0.5 * elapsed.asMilliseconds(), 0, playerSprite, tileSprite); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)) { move(0, -0.5 * elapsed.asMilliseconds(), playerSprite, tileSprite); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) { move(0, 0.5 * elapsed.asMilliseconds(), playerSprite, tileSprite); }*/ tileSprite.setPosition(50, 50); // clear the window with black color window.clear(sf::Color::White); // draw everything here... //window.draw(playerSprite); //window.draw(tileSprite); level.Render(&window); // end the current frame window.display(); } return 0; }