PauseState::PauseState(StateStack& stack, Context context)
: State(stack, context)
, mBackgroundSprite()
, mPausedText()
, mGUIContainer()
{
	sf::Font& font = context.fonts->get(Fonts::Main);
	sf::Vector2f windowSize(context.window->getSize());

	mPausedText.setFont(font);
	mPausedText.setString("Game Paused");	
	mPausedText.setCharacterSize(70);
	centerOrigin(mPausedText);
	mPausedText.setPosition(0.5f * windowSize.x, 0.4f * windowSize.y);

	auto returnButton = std::make_shared<GUI::Button>(*context.fonts, *context.textures);
	returnButton->setPosition(0.5f * windowSize.x - 100, 0.4f * windowSize.y + 75);
	returnButton->setText("Return");
	returnButton->setCallback([this] ()
	{
		requestStackPop();
	});

	auto backToMenuButton = std::make_shared<GUI::Button>(*context.fonts, *context.textures);
	backToMenuButton->setPosition(0.5f * windowSize.x - 100, 0.4f * windowSize.y + 125);
	backToMenuButton->setText("Back to menu");
	backToMenuButton->setCallback([this] ()
	{
		requestStateClear();
		requestStackPush(States::Menu);
	});

	mGUIContainer.pack(returnButton);
	mGUIContainer.pack(backToMenuButton);
}
Exemple #2
0
bool DebugState::handleEvent(const sf::Event &event)
{
	if (event.type == sf::Event::KeyPressed &&
		event.key.code == sf::Keyboard::Escape)
	{
		requestStateClear();
	}
		
	return true;
}
bool GameOverState::update(sf::Time dt)
{
	// Show state for 3 seconds, after return to menu
	mElapsedTime += dt;
	if (mElapsedTime > sf::seconds(3))
	{
		requestStateClear();
		requestStackPush(States::Menu);
	}
	return false;
}
Exemple #4
0
bool GameState::handleEvent(const sf::Event& event)
{
	if (event.type == sf::Event::Closed || (event.type == sf::Event::KeyPressed &&
		                                    event.key.code == sf::Keyboard::Escape)) {
		requestStateClear();
		return false;
	}

	scene_graph_.handleEvent(event);

	return true;
}
bool GameOverState::update(sf::Time dt)
{
	// Show state for 3 seconds, after return to menu
	mElapsedTime += dt;
	if (mElapsedTime > sf::seconds(3))
	{
		if (mStatus == Player::MissionStatus::MissionFailure
			|| mStatus == Player::MissionStatus::MissionWin)
		{			
			requestStateClear();
			requestStackPush(States::Menu);
		}
		else
		{
			requestStackPop();
		}
	}
	return false;
}
Exemple #6
0
// Handles events that occur during our pause state
bool PauseState::handleEvent(const sf::Event& event)
{
	if (event.type != sf::Event::KeyPressed)
		return false;

	if (event.key.code == sf::Keyboard::Escape)
	{
		// Escape pressed, remove itself to return to the game
		requestStackPop();
	}

	if (event.key.code == sf::Keyboard::BackSpace)
	{
		// Backspace pressed, remove all states and return to main menu
		requestStateClear();
		requestStackPush(States::Menu);
	}

	return false;
}
Exemple #7
0
bool GameState::update(sf::Time dt)
{
	handleProjectiles();
	handleInfected();
	handleSurvivors();

	cleanupBloodSplatterAnimations();
	cleanupBloodSplatters(dt);
	setRandomMusicTrack();

	updateWave();

	if (survivors_.empty()) {
		requestStateClear();
		return false;
	}

	// Update Crosshair's Position
	crosshair_->setPosition(window_->mapPixelToCoords(sf::Mouse::getPosition(*window_)));

	scene_graph_.update(dt);

	return true;
}