Fet el fade out del title de video i audio i el fade in del joc de video i audio

Actualitzat jail_audio a la última versió
This commit is contained in:
2024-12-26 10:03:02 +01:00
parent ca2c48ea17
commit b8dca0a46f
10 changed files with 287 additions and 296 deletions

View File

@@ -65,8 +65,8 @@ Game::Game(int player_id, int current_stage, bool demo)
scoreboard_ = Scoreboard::get();
fade_in_->setColor(fade_color.r, fade_color.g, fade_color.b);
fade_in_->setPost(param.fade.post_duration);
fade_in_->setType(FadeType::RANDOM_SQUARE);
fade_in_->setPost(0);
fade_in_->setType(FadeType::VENETIAN);
fade_in_->setMode(FadeMode::IN);
fade_in_->activate();
@@ -94,14 +94,6 @@ Game::Game(int player_id, int current_stage, bool demo)
Stage::total_power += Stage::get(i).power_to_complete;
}
#endif
// Crea los primeros globos y el mensaje de inicio
if (!demo_.enabled)
{
balloon_manager_->createTwoBigBalloons();
evaluateAndSetMenace();
createMessage({paths_.at(0), paths_.at(1)}, Resource::get()->getTexture("get_ready"));
}
}
Game::~Game()
@@ -282,6 +274,26 @@ void Game::updateStage()
}
}
// Actualiza el estado de fade in
void Game::updateFadeInState()
{
if (state_ == GameState::FADE_IN)
{
if (fade_in_->hasEnded())
{
state_ = GameState::PLAYING;
// Crea los primeros globos y el mensaje de inicio
if (!demo_.enabled)
{
balloon_manager_->createTwoBigBalloons();
evaluateAndSetMenace();
createMessage({paths_.at(0), paths_.at(1)}, Resource::get()->getTexture("get_ready"));
}
}
}
}
// Actualiza el estado de fin de la partida
void Game::updateGameOverState()
{
@@ -969,7 +981,7 @@ void Game::disableTimeStopItem()
void Game::checkMusicStatus()
{
// Si se ha completado el juego o los jugadores han terminado, detiene la música
state_ == GameState::COMPLETED || allPlayersAreGameOver() ? stopMusic() : playMusic();
state_ == GameState::FADE_IN || state_ == GameState::COMPLETED || allPlayersAreGameOver() ? stopMusic() : playMusic();
}
// Bucle para el juego
@@ -1781,6 +1793,7 @@ void Game::updateGame()
moveBullets();
updateItems();
updateStage();
updateFadeInState();
updateGameOverState();
updateCompletedState();
updateSmartSprites();
@@ -1808,21 +1821,24 @@ void Game::cleanVectors()
// Gestiona el nivel de amenaza
void Game::updateMenace()
{
const auto stage = Stage::get(Stage::number);
const float percent = Stage::power / stage.power_to_complete;
const int difference = stage.max_menace - stage.min_menace;
// Aumenta el nivel de amenaza en función de la puntuación
menace_threshold_ = stage.min_menace + (difference * percent);
// Si el nivel de amenza es inferior al umbral
if (menace_current_ < menace_threshold_)
if (state_ == GameState::PLAYING)
{
// Crea una formación de enemigos
balloon_manager_->deployBalloonFormation(Stage::number);
const auto stage = Stage::get(Stage::number);
const float percent = Stage::power / stage.power_to_complete;
const int difference = stage.max_menace - stage.min_menace;
// Recalcula el nivel de amenaza con el nuevo globo
evaluateAndSetMenace();
// Aumenta el nivel de amenaza en función de la puntuación
menace_threshold_ = stage.min_menace + (difference * percent);
// Si el nivel de amenza es inferior al umbral
if (menace_current_ < menace_threshold_)
{
// Crea una formación de enemigos
balloon_manager_->deployBalloonFormation(Stage::number);
// Recalcula el nivel de amenaza con el nuevo globo
evaluateAndSetMenace();
}
}
}