58 lines
2.7 KiB
C++
58 lines
2.7 KiB
C++
// hud.hpp - Configuració visual del HUD (marcador, etc.)
|
||
// © 2026 JailDesigner
|
||
|
||
#pragma once
|
||
|
||
#include <SDL3/SDL.h>
|
||
|
||
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). Amb alpha=255 el line_renderer usa el color
|
||
// directament sense caure al fallback verd (Rendering::DEFAULT_LINE_COLOR).
|
||
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
|