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; }