feat(intro/outro): panel translúcid sota el rètol amb easing del text

This commit is contained in:
JailDesigner committed 2026-04-26 18:41:17 +02:00
1 parent 0752df0f62
commit 8243e95ef1
4 files changed
+93 -11

No files matched your search

+18 -4
View File
@@ -48,10 +48,13 @@ namespace RoomFsm {
int outro_black_hold_ms{0};
// Mil·lisegons des de l'inici de ROOM_INTRO en què cau la
// cinemàtica d'spawn aeri dels jugadors actius. Independent del
// fade-in perquè el mateix valor servirà per al respawn post-mort
// (que no té fade que el sincronitze). 500 ms = típicament el
// moment en què el fade-in acaba i el text encara no ha entrat.
// cinemàtica d'spawn aeri dels jugadors actius. Específic per a
// l'entrada de sala — el respawn post-mort tindrà el seu propi
// timing quan toqui dissenyar-lo. Un valor habitual: la suma de
// fade_in + text_delay + text_enter + text_hold, perquè els
// players caiguin just quan el rètol comença a sortir. El
// fallback compilat (500 ms) deixa el spawn al final del fade-in
// si el YAML no defineix res — només pensat com a degradació.
int player_spawn_delay_ms{500};
// Píxels extra entre les dues línies del text d'INTRO (piràmide
@@ -68,6 +71,17 @@ namespace RoomFsm {
UiConfig::CurveFn text_enter_curve{nullptr};
UiConfig::CurveFn text_exit_curve{nullptr};
// Panel translúcid sota el rètol de transició (INTRO i OUTRO).
// Centrat verticalment al centre del playfield, ocupa tota
// l'amplada del canvas. Creix d'altura 0 → height_px durant la
// fase d'enter del text (amb `text_enter_curve`) i decreix
// durant la fase d'exit (amb `text_exit_curve`). 0 d'alpha o
// 0 d'alçada el deixa invisible. Color RGB (sense alpha — la
// transparència viu al camp `alpha`).
std::uint32_t text_panel_color{0x000000U};
std::uint8_t text_panel_alpha{128};
int text_panel_height_px{40};
};
// Llegeix la configuració des del YAML. Si el fitxer manca o falten