Nova fase 4 a ROOM_OUTRO: black_hold. Va just després del fade_out; durant aquesta fase la pantalla queda completament en negre opac i la FSM espera abans de transitar a INTRO. Permet donar respir entre el final del rètol Fase/Completada i el rellançament del Piramide/Sala de la sala següent, sense necessitat d'un estat nou. Implementacio: - RoomFsm::Config guanya outro_black_hold_ms (default 0 — backward compatible). YAML key room_outro.black_hold_ms al data/scenes/game.yaml (default visible 500 ms; lo afines sense recompilar). - L'array DURS de l'OUTRO passa de 4 a 5 elements; el while-loop consumeix la fase exactament igual. - renderRoomFade detecta fase 4 i dibuixa alpha=255 fix; sense aquesta branca, el fade s'apagaria a final de la fase 3 i el món tornaria a ser visible durant la pausa. - renderRoomText no canvia: phases 3 i 4 ja queden fora del rang 0..2 on dibuixa el rètol. Backward compat: black_hold_ms=0 fa que el while-loop avance immediatament la fase i recauen tots els tests existents (T7 i companys) sense modificacions.
28 lines
1.2 KiB
YAML
28 lines
1.2 KiB
YAML
# Configuració de la GameScene: timings i corbes de la FSM de sala
|
|
# (ROOM_INTRO i ROOM_OUTRO). Tots els valors són ms i tota la geometria
|
|
# i font del text es reutilitzen del tema UI (data/ui.yaml > pause +
|
|
# notification). Si manca el fitxer o alguna clau, GameScene cau als
|
|
# fallbacks compilats; veure `readSceneConfig` a game_scene.cpp.
|
|
|
|
room_intro:
|
|
fade_in_ms: 500 # negre opac → món visible
|
|
text_delay_ms: 500 # espera amb el món net abans de sortir el text
|
|
text_enter_ms: 400 # text esquerra → centre
|
|
text_hold_ms: 1500 # text quiet al centre
|
|
text_exit_ms: 400 # text centre → fora per l'esquerra
|
|
line_gap_px: 0 # px extra entre les dues línies (piràmide / sala)
|
|
|
|
room_outro:
|
|
text_enter_ms: 400
|
|
text_hold_ms: 1500
|
|
text_exit_ms: 400
|
|
fade_out_ms: 500 # món visible → negre opac
|
|
line_gap_px: 0 # px extra entre les dues línies (fase / completada)
|
|
black_hold_ms: 500 # pausa en negre abans d'entrar a la pròxima sala
|
|
|
|
text:
|
|
# Noms d'easing tal com els resol UiConfig::curveByName (vegeu
|
|
# `data/ui.yaml`). El text entra suau i surt accelerant.
|
|
enter_curve: outCubic
|
|
exit_curve: inCubic
|