Au, paca casa. M'he quedat a mitjes fent un fade de audio sincronitzat amb el fade de video en el titol

This commit is contained in:
2024-12-23 13:56:11 +01:00
parent fb4d0d12db
commit ca2c48ea17
6 changed files with 45 additions and 25 deletions

View File

@@ -44,7 +44,8 @@ Game::Game(int player_id, int current_stage, bool demo)
input_(Input::get()),
background_(std::make_unique<Background>()),
canvas_(SDL_CreateTexture(renderer_, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param.game.play_area.rect.w, param.game.play_area.rect.h)),
fade_(std::make_unique<Fade>()),
fade_in_(std::make_unique<Fade>()),
fade_out_(std::make_unique<Fade>()),
balloon_manager_(std::make_unique<BalloonManager>())
{
// Pasa variables
@@ -63,9 +64,15 @@ Game::Game(int player_id, int current_stage, bool demo)
Scoreboard::init();
scoreboard_ = Scoreboard::get();
fade_->setColor(fade_color.r, fade_color.g, fade_color.b);
fade_->setPost(param.fade.post_duration);
fade_->setType(FadeType::VENETIAN);
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_->setMode(FadeMode::IN);
fade_in_->activate();
fade_out_->setColor(fade_color.r, fade_color.g, fade_color.b);
fade_out_->setPost(param.fade.post_duration);
fade_out_->setType(FadeType::VENETIAN);
background_->setPos(param.game.play_area.rect);
@@ -213,8 +220,8 @@ void Game::updatePlayers()
if (demo_.enabled && allPlayersAreNotPlaying())
{
fade_->setType(FadeType::RANDOM_SQUARE);
fade_->activate();
fade_out_->setType(FadeType::RANDOM_SQUARE);
fade_out_->activate();
}
}
@@ -291,23 +298,13 @@ void Game::updateGameOverState()
game_over_counter_--;
/*
if ((game_over_counter_ == 250) || (game_over_counter_ == 200) || (game_over_counter_ == 180) || (game_over_counter_ == 120) || (game_over_counter_ == 60))
{
// Hace sonar aleatoriamente uno de los 4 sonidos de burbujas
const auto index = rand() % 4;
JA_Sound_t *sound[4] = {Resource::get()->getSound("bubble1.wav"), Resource::get()->getSound("bubble2.wav"), Resource::get()->getSound("bubble3.wav"), Resource::get()->getSound("bubble4.wav")};
JA_PlaySound(sound[index], 0);
}
*/
if (game_over_counter_ == 150)
{
fade_->activate();
fade_out_->activate();
}
}
if (fade_->hasEnded())
if (fade_out_->hasEnded())
{
if (game_completed_counter_ > 0)
{
@@ -945,7 +942,8 @@ void Game::render()
scoreboard_->render();
// Dibuja el fade
fade_->render();
fade_in_->render();
fade_out_->render();
// Vuelca el contenido del renderizador en pantalla
screen_->blit();
@@ -1729,12 +1727,12 @@ void Game::updateDemo()
// Activa el fundido antes de acabar con los datos de la demo
if (demo_.counter == TOTAL_DEMO_DATA - 200)
{
fade_->setType(FadeType::RANDOM_SQUARE);
fade_->activate();
fade_out_->setType(FadeType::RANDOM_SQUARE);
fade_out_->activate();
}
// Si ha terminado el fundido, cambia de sección
if (fade_->hasEnded())
if (fade_out_->hasEnded())
{
section::name = section::Name::HI_SCORE_TABLE;
return;
@@ -1773,7 +1771,8 @@ void Game::updateGame()
Stage::addPower(5);
}
#endif
fade_->update();
fade_in_->update();
fade_out_->update();
updatePlayers();
checkPlayersStatusPlaying();
updateScoreboard();