afegida veu: good job commander
calibrats els volumnes de musica i efectes afegida forma: ship2.shp canviat tamany de textos de canvi de pantalla
This commit is contained in:
@@ -169,10 +169,11 @@ constexpr int FADE_DURATION_MS = 1000; // Fade out duration
|
||||
|
||||
// Efectes de so (sons puntuals)
|
||||
namespace Sound {
|
||||
constexpr float VOLUME = 1.0F; // Volumen efectos
|
||||
constexpr bool ENABLED = true; // Sonidos habilitados
|
||||
constexpr const char* EXPLOSION = "explosion.wav"; // Explosión
|
||||
constexpr const char* LASER = "laser_shoot.wav"; // Disparo
|
||||
constexpr float VOLUME = 1.0F; // Volumen efectos
|
||||
constexpr bool ENABLED = true; // Sonidos habilitados
|
||||
constexpr const char* EXPLOSION = "explosion.wav"; // Explosión
|
||||
constexpr const char* LASER = "laser_shoot.wav"; // Disparo
|
||||
constexpr const char* GOOD_JOB_COMMANDER = "good_job_commander.wav"; // Voz: "Good job, commander"
|
||||
} // namespace Sound
|
||||
|
||||
// Enemy type configuration (tipus d'enemics)
|
||||
|
||||
@@ -165,6 +165,8 @@ auto Director::run() -> int {
|
||||
|
||||
// Inicialitzar sistema d'audio
|
||||
Audio::init();
|
||||
Audio::get()->setMusicVolume(1.0);
|
||||
Audio::get()->setSoundVolume(0.4);
|
||||
|
||||
// Precachejar música per evitar lag al començar
|
||||
AudioCache::getMusic("title.ogg");
|
||||
|
||||
@@ -22,7 +22,7 @@ Nau::Nau(SDL_Renderer* renderer)
|
||||
esta_tocada_(false),
|
||||
brightness_(Defaults::Brightness::NAU) {
|
||||
// [NUEVO] Carregar forma compartida des de fitxer
|
||||
forma_ = Graphics::ShapeLoader::load("ship.shp");
|
||||
forma_ = Graphics::ShapeLoader::load("ship2.shp");
|
||||
|
||||
if (!forma_ || !forma_->es_valida()) {
|
||||
std::cerr << "[Nau] Error: no s'ha pogut carregar ship.shp" << std::endl;
|
||||
|
||||
@@ -244,6 +244,7 @@ void EscenaJoc::actualitzar(float delta_time) {
|
||||
auto& spawn_ctrl = stage_manager_->get_spawn_controller();
|
||||
if (spawn_ctrl.tots_enemics_destruits(orni_)) {
|
||||
stage_manager_->stage_completat();
|
||||
Audio::get()->playSound(Defaults::Sound::GOOD_JOB_COMMANDER, Audio::Group::GAME);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -573,8 +574,8 @@ void EscenaJoc::detectar_col·lisio_nau_enemics() {
|
||||
// [NEW] Stage system helper methods
|
||||
|
||||
void EscenaJoc::dibuixar_missatge_stage(const std::string& missatge) {
|
||||
constexpr float escala = 1.5f;
|
||||
constexpr float spacing = 3.0f;
|
||||
constexpr float escala = 1.0f;
|
||||
constexpr float spacing = 2.0f;
|
||||
|
||||
float text_width = text_.get_text_width(missatge, escala, spacing);
|
||||
float text_height = text_.get_text_height(escala);
|
||||
|
||||
@@ -411,7 +411,7 @@ void EscenaTitol::dibuixar() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Estat MAIN i TRANSITION: Dibuixar títol i text (sobre el starfield)
|
||||
// Estat MAIN i TRANSITION_TO_GAME: Dibuixar títol i text (sobre el starfield)
|
||||
if (estat_actual_ == EstatTitol::MAIN || estat_actual_ == EstatTitol::TRANSITION_TO_GAME) {
|
||||
// === Calcular i renderitzar ombra (només si animació activa) ===
|
||||
if (animacio_activa_) {
|
||||
@@ -567,7 +567,8 @@ void EscenaTitol::processar_events(const SDL_Event& event) {
|
||||
// Iniciar transició amb fade-out de música
|
||||
estat_actual_ = EstatTitol::TRANSITION_TO_GAME;
|
||||
temps_acumulat_ = 0.0f; // Reset del comptador
|
||||
Audio::get()->fadeOutMusic(MUSIC_FADE); // Fade de 300ms
|
||||
Audio::get()->fadeOutMusic(MUSIC_FADE); // Fade
|
||||
Audio::get()->playSound(Defaults::Sound::LASER, Audio::Group::GAME);
|
||||
break;
|
||||
|
||||
case EstatTitol::TRANSITION_TO_GAME:
|
||||
|
||||
Reference in New Issue
Block a user