feat(ui): captura F9, tema a data/ui.yaml i retocs estètics
Captura de pantalla amb F9: volca el canvas ARGB a screenshots/scr_<timestamp>.png via stb_image_write. Tot el tema d'UI (colors, timings, fonts, flag hud.bg_enabled) passa a data/ui.yaml via UiConfig; els valors de Defaults::UI queden com a fallbacks si el fitxer falta o li manca alguna clau. Retocs estètics: paleta "uzebox" per a la UI, strings del HUD (P1/P2/V/T/PIRAMIDE/SALA) traduïts a locale, i fons del marcador opcional amb backdrop continu de franja per evitar el trencament visual durant el shake o l'animació d'entrada dels panells.
This commit is contained in:
1 parent
82b229222f
commit
dc8a7723e3
26 files changed
+2593
-210
No files matched your search
+34
-19
@@ -84,11 +84,11 @@ namespace Defaults {
|
||||
constexpr float SPEED_PX_PER_S = 60.0F; // Velocitat base del jugador (sense sprint / slow-zones).
|
||||
} // namespace Player
|
||||
|
||||
// Índexs de paleta (sega-cube.pal) i temps en ms per als components
|
||||
// de UI. Centralitzats ací perquè un "tema" viu en un únic lloc: tocar
|
||||
// els colors o durades de l'overlay/notificador no requereix buscar
|
||||
// pel codi. Si algun dia es volen temes múltiples, es pot moure a YAML
|
||||
// sense més impacte que dos accessors extra.
|
||||
// Fallbacks del tema d'UI: índexs de paleta, timings (ms) i fonts.
|
||||
// El tema en viu és a data/ui.yaml, carregat per UiConfig a
|
||||
// l'arrencada; aquests valors només s'apliquen si el fitxer falta o
|
||||
// li manca alguna clau. Ací només cal tocar-los si es vol canviar el
|
||||
// fallback "de fàbrica".
|
||||
namespace UI {
|
||||
// Fonts d'UI centralitzades: un únic lloc per conèixer la carpeta
|
||||
// (data/fonts/), el nom-clau al Resource::Cache i els fitxers .gif /
|
||||
@@ -128,32 +128,47 @@ namespace Defaults {
|
||||
} // namespace Font
|
||||
|
||||
// Overlay de RenderInfo (F12).
|
||||
constexpr Uint8 RENDER_INFO_TEXT = 47;
|
||||
constexpr Uint8 RENDER_INFO_SHADOW = 34;
|
||||
constexpr Uint8 RENDER_INFO_TEXT = 58;
|
||||
constexpr Uint8 RENDER_INFO_SHADOW = 16;
|
||||
|
||||
// Fons del canvas (zona fora del tilemap en letterbox/integer).
|
||||
constexpr Uint8 CANVAS_BG = 65;
|
||||
constexpr Uint8 CANVAS_BG = 72;
|
||||
|
||||
// Preset per defecte del Notifier.
|
||||
constexpr Uint8 NOTIFICATION_TEXT = 197;
|
||||
constexpr Uint8 NOTIFICATION_BG = 96;
|
||||
constexpr Uint8 NOTIFICATION_TEXT = 232;
|
||||
constexpr Uint8 NOTIFICATION_BG = 64;
|
||||
constexpr int NOTIFICATION_TIME_MS = 4000;
|
||||
|
||||
// Preset per a la confirmació d'eixida (ESC doble). La durada ha
|
||||
// de coincidir amb la del Notifier perquè el missatge i la finestra
|
||||
// de confirmació expiren alhora (veure GlobalInputs::onExit).
|
||||
constexpr Uint8 EXIT_TEXT = 88;
|
||||
constexpr Uint8 EXIT_BG = 40;
|
||||
constexpr Uint8 EXIT_TEXT = 71;
|
||||
constexpr Uint8 EXIT_BG = 2;
|
||||
constexpr int EXIT_TIME_MS = 4000;
|
||||
|
||||
// Índexs de paleta per al menú de servei (F9).
|
||||
constexpr Uint8 MENU_BG = 40; // Fons de la caixa.
|
||||
constexpr Uint8 MENU_BORDER = 197; // Vora.
|
||||
constexpr Uint8 MENU_TITLE = 213; // Títol i subtítol.
|
||||
constexpr Uint8 MENU_LABEL = 47; // Etiquetes dels items.
|
||||
constexpr Uint8 MENU_VALUE = 197; // Valor actual.
|
||||
constexpr Uint8 MENU_CURSOR = 88; // Item seleccionat.
|
||||
constexpr Uint8 MENU_DISABLED = 34; // Label en gris quan no aplica.
|
||||
constexpr Uint8 MENU_BG = 2; // Fons de la caixa.
|
||||
constexpr Uint8 MENU_BORDER = 232; // Vora.
|
||||
constexpr Uint8 MENU_TITLE = 237; // Títol i subtítol.
|
||||
constexpr Uint8 MENU_LABEL = 58; // Etiquetes dels items.
|
||||
constexpr Uint8 MENU_VALUE = 232; // Valor actual.
|
||||
constexpr Uint8 MENU_CURSOR = 71; // Item seleccionat.
|
||||
constexpr Uint8 MENU_DISABLED = 16; // Label en gris quan no aplica.
|
||||
|
||||
// Índexs de paleta per al marcador de joc (HUD de la GameScene).
|
||||
// Arranca reciclant els colors del menú per coherència visual;
|
||||
// separant els noms a constants pròpies, tocar-los a posteriori
|
||||
// no afecta el menú.
|
||||
constexpr Uint8 HUD_BG = 0; // Fons de cada bloc.
|
||||
constexpr Uint8 HUD_LABEL = 58; // Etiquetes ("P1", "V", "T").
|
||||
constexpr Uint8 HUD_VALUE = 187; // Valors (score, vides, tresors).
|
||||
constexpr Uint8 HUD_FLASH = 237; // Color temporal del valor en flash.
|
||||
|
||||
// Timings d'animació del HUD. L'entrada són els tres blocs lliscant
|
||||
// a la seua posició; flash i shake acompanyen un `player_hit`.
|
||||
constexpr int HUD_ENTRY_MS = 400;
|
||||
constexpr int HUD_FLASH_MS = 250;
|
||||
constexpr int HUD_SHAKE_MS = 300;
|
||||
} // namespace UI
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
Reference in new issue
Block a user