convertit Asset i Audio

This commit is contained in:
2025-05-27 11:06:17 +02:00
parent 9bc07b2bcb
commit ada141cb09
29 changed files with 493 additions and 472 deletions

View File

@@ -39,8 +39,6 @@
Game::Game(int player_id, int current_stage, bool demo)
: renderer_(Screen::get()->getRenderer()),
screen_(Screen::get()),
audio_(Audio::get()),
asset_(Asset::get()),
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)),
@@ -103,19 +101,19 @@ Game::~Game()
// [Modo DEMO] Vuelve a activar los sonidos
if (demo_.enabled)
{
audio_->enableSound();
Audio::get().enableSound();
}
else
{
// [Modo JUEGO] Guarda puntuaciones y transita a modo título
auto manager = std::make_unique<ManageHiScoreTable>(options.game.hi_score_table);
manager->saveToFile(asset_->get("score.bin"));
manager->saveToFile(Asset::get().get("score.bin"));
section::attract_mode = section::AttractMode::TITLE_TO_DEMO;
audio_->stopMusic();
Audio::get().stopMusic();
}
#ifdef RECORDING
saveDemoFile(Asset::get()->get("demo1.bin"), demo_.data.at(0));
saveDemoFile(Asset::get().get("demo1.bin"), demo_.data.at(0));
#endif
Scoreboard::destroy();
@@ -203,7 +201,7 @@ void Game::updateHiScore()
if (hi_score_achieved_ == false)
{
hi_score_achieved_ = true;
audio_->playSound("hi_score_achieved.wav");
Audio::get().playSound("hi_score_achieved.wav");
}
}
}
@@ -261,7 +259,7 @@ void Game::updateStage()
// Cambio de fase
Stage::power = Stage::get(Stage::number).power_to_complete - Stage::power;
++Stage::number;
audio_->playSound("stage_change.wav");
Audio::get().playSound("stage_change.wav");
balloon_manager_->resetBalloonSpeed();
screen_->flash(FLASH_COLOR, 3);
screen_->shake();
@@ -313,7 +311,7 @@ void Game::updateGameStateGameOver()
if (game_over_counter_ == GAME_OVER_COUNTER_)
{
createMessage({paths_.at(2), paths_.at(3)}, Resource::get()->getTexture("game_text_game_over"));
audio_->fadeOutMusic(1000);
Audio::get().fadeOutMusic(1000);
balloon_manager_->setSounds(true);
}
@@ -330,7 +328,7 @@ void Game::updateGameStateGameOver()
if (options.audio.enabled)
{
const float VOL = static_cast<float>(64 * (100 - fade_out_->getValue())) / 100.0f;
audio_->setSoundVolume(static_cast<int>(VOL));
Audio::get().setSoundVolume(static_cast<int>(VOL));
}
}
@@ -349,8 +347,8 @@ void Game::updateGameStateGameOver()
section::options = section::Options::HI_SCORE_AFTER_PLAYING;
if (options.audio.enabled)
{
audio_->stopAllSounds();
audio_->setSoundVolume(options.audio.sound.volume);
Audio::get().stopAllSounds();
Audio::get().setSoundVolume(options.audio.sound.volume);
}
}
}
@@ -483,7 +481,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
player->addScore(1000);
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(0)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(0));
audio_->playSound("item_pickup.wav");
Audio::get().playSound("item_pickup.wav");
break;
}
case ItemType::GAVINA:
@@ -491,7 +489,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
player->addScore(2500);
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(1)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(1));
audio_->playSound("item_pickup.wav");
Audio::get().playSound("item_pickup.wav");
break;
}
case ItemType::PACMAR:
@@ -499,7 +497,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
player->addScore(5000);
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(2)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(2));
audio_->playSound("item_pickup.wav");
Audio::get().playSound("item_pickup.wav");
break;
}
case ItemType::DEBIAN:
@@ -507,7 +505,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
player->addScore(100000);
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(6)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(6));
audio_->playSound("debian_pickup.wav");
Audio::get().playSound("debian_pickup.wav");
break;
}
case ItemType::CLOCK:
@@ -515,7 +513,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
enableTimeStopItem();
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(5)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(5));
audio_->playSound("item_pickup.wav");
Audio::get().playSound("item_pickup.wav");
break;
}
case ItemType::COFFEE:
@@ -532,7 +530,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(4)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(4));
}
audio_->playSound("voice_coffee.wav");
Audio::get().playSound("voice_coffee.wav");
break;
}
case ItemType::COFFEE_MACHINE:
@@ -541,7 +539,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
coffee_machine_enabled_ = false;
const auto x = item->getPosX() + (item->getWidth() - game_text_textures_.at(3)->getWidth()) / 2;
createItemText(x, game_text_textures_.at(3));
audio_->playSound("voice_power_up.wav");
Audio::get().playSound("voice_power_up.wav");
break;
}
default:
@@ -570,7 +568,7 @@ void Game::checkBulletCollision()
if (tabe_->tryToGetBonus())
{
createItem(ItemType::DEBIAN, pos.x, pos.y);
audio_->playSound("debian_drop.wav");
Audio::get().playSound("debian_drop.wav");
}
else
{
@@ -578,7 +576,7 @@ void Game::checkBulletCollision()
{
createItem(ItemType::COFFEE, pos.x, pos.y);
}
audio_->playSound("tabe_hit.wav");
Audio::get().playSound("tabe_hit.wav");
}
break;
}
@@ -600,7 +598,7 @@ void Game::checkBulletCollision()
if (dropped_item != ItemType::COFFEE_MACHINE)
{
createItem(dropped_item, balloon->getPosX(), balloon->getPosY());
audio_->playSound("item_drop.wav");
Audio::get().playSound("item_drop.wav");
}
else
{
@@ -622,7 +620,7 @@ void Game::checkBulletCollision()
updateHiScore();
// Sonido de explosión
audio_->playSound("balloon.wav");
Audio::get().playSound("balloon.wav");
// Deshabilita la bala
bullet->disable();
@@ -678,7 +676,7 @@ void Game::updateItems()
item->update();
if (item->isOnFloor())
{
audio_->playSound("title.wav");
Audio::get().playSound("title.wav");
screen_->shake();
}
}
@@ -905,16 +903,16 @@ void Game::killPlayer(std::shared_ptr<Player> &player)
// Lo pierde
player->removeExtraHit();
throwCoffee(player->getPosX() + (player->getWidth() / 2), player->getPosY() + (player->getHeight() / 2));
audio_->playSound("coffee_out.wav");
Audio::get().playSound("coffee_out.wav");
screen_->shake();
}
else
{
// Si no tiene cafes, muere
balloon_manager_->stopAllBalloons();
audio_->playSound("player_collision.wav");
Audio::get().playSound("player_collision.wav");
screen_->shake();
audio_->playSound("voice_no.wav");
Audio::get().playSound("voice_no.wav");
player->setPlayingState(PlayerState::DYING);
if (allPlayersAreNotPlaying())
{
@@ -934,7 +932,7 @@ void Game::updateTimeStopped()
{
if (time_stopped_counter_ % 30 == 0)
{
audio_->playSound("clock.wav");
Audio::get().playSound("clock.wav");
}
}
else
@@ -942,12 +940,12 @@ void Game::updateTimeStopped()
if (time_stopped_counter_ % 30 == 0)
{
balloon_manager_->normalColorsToAllBalloons();
audio_->playSound("clock.wav");
Audio::get().playSound("clock.wav");
}
else if (time_stopped_counter_ % 30 == 15)
{
balloon_manager_->reverseColorsToAllBalloons();
audio_->playSound("clock.wav");
Audio::get().playSound("clock.wav");
}
}
}
@@ -1270,7 +1268,7 @@ void Game::addScoreToScoreBoard(const std::shared_ptr<Player> &player)
const auto entry = HiScoreEntry(trim(player->getRecordName()), player->getScore(), player->get1CC());
auto manager = std::make_unique<ManageHiScoreTable>(options.game.hi_score_table);
options.game.last_hi_score_entry.at(player->getId() - 1) = manager->add(entry);
manager->saveToFile(asset_->get("score.bin"));
manager->saveToFile(Asset::get().get("score.bin"));
hi_score_.name = options.game.hi_score_table.front().name;
}
@@ -1429,7 +1427,7 @@ void Game::handleFireInput(const std::shared_ptr<Player> &player, BulletType bul
player->setInput(bulletType == BulletType::UP ? InputAction::FIRE_CENTER : bulletType == BulletType::LEFT ? InputAction::FIRE_LEFT
: InputAction::FIRE_RIGHT);
createBullet(player->getPosX() + (player->getWidth() / 2) - 6, player->getPosY() + (player->getHeight() / 2), bulletType, player->isPowerUp(), player->getId());
audio_->playSound("bullet.wav");
Audio::get().playSound("bullet.wav");
// Establece un tiempo de espera para el próximo disparo.
const int cooldown = player->isPowerUp() ? 5 : options.game.autofire ? 10
@@ -1631,7 +1629,7 @@ void Game::initDemo(int player_id)
}
// Deshabilita los sonidos
audio_->disableSound();
Audio::get().disableSound();
// Configura los marcadores
scoreboard_->setMode(SCOREBOARD_LEFT_PANEL, ScoreboardMode::DEMO);
@@ -1733,7 +1731,7 @@ void Game::initPlayers(int player_id)
// Hace sonar la música
void Game::playMusic()
{
audio_->playMusic("playing.ogg");
Audio::get().playMusic("playing.ogg");
}
// Detiene la música
@@ -1741,7 +1739,7 @@ void Game::stopMusic()
{
if (!demo_.enabled)
{
audio_->stopMusic();
Audio::get().stopMusic();
}
}
@@ -1825,7 +1823,7 @@ void Game::updateGameStateEnteringPlayer()
{
setState(GameState::SHOWING_GET_READY_MESSAGE);
createMessage({paths_.at(0), paths_.at(1)}, Resource::get()->getTexture("game_text_get_ready"));
audio_->playSound("voice_get_ready.wav");
Audio::get().playSound("voice_get_ready.wav");
}
}
}
@@ -1878,7 +1876,7 @@ void Game::updateGameStatePlaying()
checkAndUpdateBalloonSpeed();
checkState();
cleanVectors();
//playMusic();
// playMusic();
}
// Vacía los vectores de elementos deshabilitados