Exemplo n.º 1
0
bool GameScene::OnCollision(PhysicsContact& contact)
{
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();

	if ((a->getName() == "player" && b->getName() == "slowCar") ||
		(b->getName() == "player" && a->getName() == "slowCar"))
	{
		SimpleAudioEngine::getInstance()->stopBackgroundMusic();
		SimpleAudioEngine::getInstance()->playEffect("bomb.wav");
		GoToGameOverScene();
	}
	else if ((a->getName() == "player" && b->getName() == "spectacle") ||
		(b->getName() == "player" && a->getName() == "spectacle"))
	{
		m_score += SCORE_INCREMENT;
		std::stringstream ss;
		ss << m_score;

		m_scoreLabel->setString("Score: " + ss.str());
	}
	else if (a->getName() == "player" && b->getName() == "gas")
	{
		SimpleAudioEngine::getInstance()->playEffect("pickupBonus.wav");
		m_gasoline += 3.0f;
		b->setName("empty");
		RemoveBonus();
	}
	else if (b->getName() == "player" && a->getName() == "gas")
	{
		SimpleAudioEngine::getInstance()->playEffect("pickupBonus.wav");
		m_gasoline += 3.0f;
		a->setName("empty");
		RemoveBonus();
	}
	
	return false;
}