INIT_HUD amb temps de les animacions per percentatge

ordenats en subcarpetes els fitxers d'audio
corregit typo LIFES a LIVES
This commit is contained in:
2025-12-09 22:57:01 +01:00
parent b8173b205b
commit b4e0ca7eca
10 changed files with 48 additions and 72 deletions

View File

@@ -260,28 +260,13 @@ void EscenaJoc::actualitzar(float delta_time) {
ship_progress = std::min(1.0f, ship_progress);
// Calcular quant ha avançat l'animació de la nau
float ship_anim_progress = ship_progress /
(Defaults::Game::INIT_HUD_SHIP_DURATION / Defaults::Game::INIT_HUD_DURATION);
float ship_anim_progress = ship_progress / Defaults::Game::INIT_HUD_SHIP_RATIO;
ship_anim_progress = std::min(1.0f, ship_anim_progress);
// [DEBUG] Imprimir progrés i posició cada 10 frames
static int debug_frame_count = 0;
if (++debug_frame_count % 10 == 0) {
std::cout << "[INIT_HUD] timer=" << stage_manager_->get_timer_transicio()
<< " ship_progress=" << ship_progress
<< " ship_anim_progress=" << ship_anim_progress
<< " condition=" << (ship_anim_progress < 1.0f ? "TRUE" : "FALSE")
<< " pos.y=" << nau_.get_centre().y
<< std::endl;
}
// Actualitzar posició de la nau segons animació
if (ship_anim_progress < 1.0f) {
Punt pos_animada = calcular_posicio_nau_init_hud(ship_anim_progress);
std::cout << "[INIT_HUD] SETTING pos.y=" << pos_animada.y << std::endl; // [DEBUG]
nau_.set_centre(pos_animada);
} else {
std::cout << "[INIT_HUD] SKIPPING update (progress >= 1.0)" << std::endl; // [DEBUG]
}
// Una vegada l'animació acaba, permetre control normal
@@ -415,18 +400,15 @@ void EscenaJoc::dibuixar() {
float global_progress = 1.0f - (timer / total_time);
// Progrés del rectangle (empieza inmediatament)
float rect_progress = global_progress /
(Defaults::Game::INIT_HUD_RECT_DURATION / total_time);
float rect_progress = global_progress / Defaults::Game::INIT_HUD_RECT_RATIO;
rect_progress = std::min(1.0f, rect_progress);
// Progrés del marcador (empieza inmediatament)
float score_progress = global_progress /
(Defaults::Game::INIT_HUD_SCORE_DURATION / total_time);
float score_progress = global_progress / Defaults::Game::INIT_HUD_SCORE_RATIO;
score_progress = std::min(1.0f, score_progress);
// Progrés de la nau (empieza inmediatament)
float ship_progress = global_progress /
(Defaults::Game::INIT_HUD_SHIP_DURATION / total_time);
float ship_progress = global_progress / Defaults::Game::INIT_HUD_SHIP_RATIO;
ship_progress = std::min(1.0f, ship_progress);
// Dibuixar elements animats
@@ -634,7 +616,7 @@ void EscenaJoc::dibuixar_marcador() {
std::string score_str = std::to_string(puntuacio_total_);
score_str = std::string(5 - std::min(5, static_cast<int>(score_str.length())), '0') + score_str;
std::string text = "SCORE: " + score_str + " LIFES: " + std::to_string(num_vides_) +
std::string text = "SCORE: " + score_str + " LIVES: " + std::to_string(num_vides_) +
" LEVEL: " + stage_str;
// Paràmetres de renderització
@@ -733,7 +715,7 @@ void EscenaJoc::dibuixar_marcador_animat(float progress) {
std::string score_str = std::to_string(puntuacio_total_);
score_str = std::string(5 - std::min(5, static_cast<int>(score_str.length())), '0') + score_str;
std::string text = "SCORE: " + score_str + " LIFES: " + std::to_string(num_vides_) +
std::string text = "SCORE: " + score_str + " LIVES: " + std::to_string(num_vides_) +
" LEVEL: " + stage_str;
// Calcular dimensions