From e4f8f586d60d41b41cef9d0f2ce8865231f160f6 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Fri, 29 May 2026 20:06:01 +0200 Subject: [PATCH] tweak(hud): constants de l'esquema de color per jugador i de les icones de vides --- source/core/defaults/hud.hpp | 37 ++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/source/core/defaults/hud.hpp b/source/core/defaults/hud.hpp index 4cc4fb3..ea55cbd 100644 --- a/source/core/defaults/hud.hpp +++ b/source/core/defaults/hud.hpp @@ -12,17 +12,46 @@ namespace Defaults::Hud { 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). + // Esquema de color del marcador: "per jugador + sistema". Cada jugador usa + // el SEU color (parella brillant/atenuat) en tot el seu bloc (punts + vides); + // el nivell central va sempre en verd de sistema. Colors plans i purs: el + // glow/bloom el posa el shader de postpro, NO s'horneja al color. Amb + // alpha=255 el line_renderer usa el color directament sense caure al fallback + // verd (Rendering::DEFAULT_LINE_COLOR). namespace Colors { + // Jugador 1 → cian. + constexpr SDL_Color P1_BRIGHT = {.r = 41, .g = 231, .b = 255, .a = 255}; // #29E7FF + constexpr SDL_Color P1_DIM = {.r = 12, .g = 90, .b = 102, .a = 255}; // #0C5A66 + // Jugador 2 → groc. + constexpr SDL_Color P2_BRIGHT = {.r = 255, .g = 226, .b = 58, .a = 255}; // #FFE23A + constexpr SDL_Color P2_DIM = {.r = 110, .g = 98, .b = 16, .a = 255}; // #6E6210 + // Nivell / sistema → verd. + constexpr SDL_Color LEVEL_BRIGHT = {.r = 77, .g = 255, .b = 102, .a = 255}; // #4DFF66 + constexpr SDL_Color LEVEL_DIM = {.r = 29, .g = 107, .b = 44, .a = 255}; // #1D6B2C + + // Colors legacy (es retiren en migrar el render del marcador). 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 + // Vides representades com a icones de la nau (reutilitza la shape de la nau + // escalada, no un número). Mides derivades de l'alçada del marcador + // (Defaults::Zones::SCOREBOARD_BOTTOM_H) per encaixar-hi sempre. + namespace Lives { + constexpr float ICON_HEIGHT_RATIO = 0.45F; // alçada de la icona com a fracció de l'alçada del marcador + constexpr float ICON_SPACING_FACTOR = 1.35F; // separació centre-a-centre = alçada_icona × factor + constexpr int MAX_ICONS = 5; // límit d'icones dibuixades (acota l'ample del bloc) + } // namespace Lives + + // Disposició del marcador: bloc P1 ancorat a l'esquerra, bloc P2 a la dreta + // (mateix ordre intern "punts vides", no mirrored) i nivell centrat. Els + // blocs s'alineen amb les verticals del PLAYAREA. + namespace Layout { + constexpr float BLOCK_INNER_GAP = 24.0F; // separació punts↔vides dins d'un bloc (px lògics) + } // namespace Layout + // Animación de entrada del HUD (init_hud_animator). namespace InitAnim { // Spawn vertical de la nave: 50 px bajo la PLAYAREA (sale desde fuera).