// hud.hpp - Configuració visual del HUD (marcador, etc.) // © 2026 JailDesigner #pragma once #include namespace Defaults::Hud { // Marcador (scoreboard inferior). Usado por GameScene::drawScoreboard() // y por la animación de entrada en init_hud_animator. constexpr float SCOREBOARD_TEXT_SCALE = 0.85F; constexpr float SCOREBOARD_TEXT_SPACING = 0.0F; // Colors per segment del marcador. Jerarquia per funció (score/vides/nivell) // + diferenciació de jugador (P1 blanc vs P2 rosa) sense xocar amb els // colors d'enemics (cyan/roig). Si alpha=255 desactiva l'oscil·lador global // i mostra el color estable (en lloc del pulse verd genèric). namespace Colors { constexpr SDL_Color SCORE_P1 = {.r = 255, .g = 255, .b = 255, .a = 255}; // blanc constexpr SDL_Color SCORE_P2 = {.r = 255, .g = 130, .b = 200, .a = 255}; // rosa magenta constexpr SDL_Color LIVES = {.r = 255, .g = 180, .b = 60, .a = 255}; // ambre / or constexpr SDL_Color LEVEL = {.r = 155, .g = 255, .b = 175, .a = 255}; // verd sistema } // namespace Colors // Animación de entrada del HUD (init_hud_animator). namespace InitAnim { // Spawn vertical de la nave: 50 px bajo la PLAYAREA (sale desde fuera). constexpr float SHIP_SPAWN_Y_OFFSET = 50.0F; // Bordes: ratios de las tres fases (top → laterales → bottom). constexpr float BORDER_PHASE_1_END = 0.33F; // Fin de la fase top constexpr float BORDER_PHASE_2_END = 0.66F; // Fin de la fase laterales } // namespace InitAnim // Indicadores ("tips") sobre los enemigos enganchados a la nave. // Offset local al frame de la nave (apunta hacia delante, eje Y negativo). namespace Tips { constexpr float LOCAL_X = 0.0F; constexpr float LOCAL_Y = -12.0F; } // namespace Tips // Overlay de debug (FPS, métriques) en coordenades lògiques (1280×720). namespace DebugOverlay { constexpr float X = 30.0F; constexpr float Y_FPS = 24.0F; constexpr float FPS_LINE_HEIGHT = 28.0F; // separació després del FPS (scale 0.7 → ~28 px) constexpr float LINE_HEIGHT = 18.0F; // separació entre línies (scale 0.4 → ~16 px alt) constexpr float FPS_SCALE = 0.7F; // FPS més gran que la resta constexpr float TEXT_SCALE = 0.4F; constexpr float TEXT_SPACING = 2.0F; constexpr float BRIGHTNESS = 1.0F; constexpr float FPS_UPDATE_INTERVAL = 0.5F; // Cadencia d'actualització del FPS visible constexpr SDL_Color COLOR = {.r = 255, .g = 215, .b = 0, .a = 255}; // #FFD700 — daurat } // namespace DebugOverlay } // namespace Defaults::Hud