new: el jugador explota els globos per contacte si estos estan parats
This commit is contained in:
@@ -210,14 +210,26 @@ void Game::updatePlayers()
|
||||
if (player->isPlaying())
|
||||
{
|
||||
// Comprueba la colisión entre el jugador y los globos
|
||||
if (checkPlayerBalloonCollision(player))
|
||||
{
|
||||
handlePlayerCollision(player);
|
||||
auto balloon = checkPlayerBalloonCollision(player);
|
||||
|
||||
if (demo_.enabled && allPlayersAreNotPlaying())
|
||||
// Si hay colisión
|
||||
if (balloon)
|
||||
{
|
||||
// Si el globo está parado y el temporizador activo, lo explota
|
||||
if (balloon->isStopped() && time_stopped_counter_ > 0)
|
||||
{
|
||||
fade_out_->setType(FadeType::RANDOM_SQUARE);
|
||||
fade_out_->activate();
|
||||
balloon_manager_->popBalloon(balloon);
|
||||
}
|
||||
// En caso contrario, el jugador ha sido golpeado por un globo activo
|
||||
else
|
||||
{
|
||||
handlePlayerCollision(player);
|
||||
|
||||
if (demo_.enabled && allPlayersAreNotPlaying())
|
||||
{
|
||||
fade_out_->setType(FadeType::RANDOM_SQUARE);
|
||||
fade_out_->activate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -443,20 +455,20 @@ void Game::destroyAllItems()
|
||||
}
|
||||
|
||||
// Comprueba la colisión entre el jugador y los globos activos
|
||||
bool Game::checkPlayerBalloonCollision(std::shared_ptr<Player> &player)
|
||||
std::shared_ptr<Balloon> Game::checkPlayerBalloonCollision(std::shared_ptr<Player> &player)
|
||||
{
|
||||
for (auto &balloon : balloon_manager_->getBalloons())
|
||||
{
|
||||
if (!balloon->isStopped() && !balloon->isInvulnerable() && !balloon->isPowerBall())
|
||||
if (!balloon->isInvulnerable() && !balloon->isPowerBall())
|
||||
{
|
||||
if (checkCollision(player->getCollider(), balloon->getCollider()))
|
||||
{
|
||||
return true;
|
||||
return balloon; // Devuelve el globo con el que se ha producido la colisión
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return nullptr; // No se ha producido ninguna colisión
|
||||
}
|
||||
|
||||
// Comprueba la colisión entre el jugador y los items
|
||||
|
||||
Reference in New Issue
Block a user