feat(scenes): data/scenes/game.yaml amb timings i corbes de transició
This commit is contained in:
1 parent
651db50a93
commit
368f9d2d6a
4 files changed
+117
No files matched your search
@@ -50,6 +50,27 @@ class GameScene : public Scene {
|
||||
ROOM_OUTRO, // Sortida de sala: text de sortida + fade out.
|
||||
};
|
||||
|
||||
// Configuració de la FSM de sala llegida de `data/scenes/game.yaml`.
|
||||
// Si el YAML manca, els camps queden amb els fallbacks compilats. Es
|
||||
// carrega un sol cop al ctor; canvis al fitxer requereixen reiniciar.
|
||||
// Pública pel mateix motiu que State: el reader viu en un anonymous
|
||||
// namespace fora de la classe per simetria amb els altres readers.
|
||||
struct SceneTransitionConfig {
|
||||
int intro_fade_in_ms{500};
|
||||
int intro_text_delay_ms{500};
|
||||
int intro_text_enter_ms{500};
|
||||
int intro_text_hold_ms{1000};
|
||||
int intro_text_exit_ms{500};
|
||||
|
||||
int outro_text_enter_ms{500};
|
||||
int outro_text_hold_ms{1000};
|
||||
int outro_text_exit_ms{500};
|
||||
int outro_fade_out_ms{500};
|
||||
|
||||
UiConfig::CurveFn text_enter_curve{nullptr};
|
||||
UiConfig::CurveFn text_exit_curve{nullptr};
|
||||
};
|
||||
|
||||
explicit GameScene(Config config = defaultConfig());
|
||||
~GameScene() override;
|
||||
|
||||
@@ -155,6 +176,10 @@ class GameScene : public Scene {
|
||||
UiConfig::CurveFn curve{nullptr}; // Corba activa.
|
||||
} pause_;
|
||||
|
||||
// Configuració de la FSM de sala (intro/outro). Carregada al ctor des
|
||||
// de `data/scenes/game.yaml`; valors per defecte si manca el YAML.
|
||||
SceneTransitionConfig transition_config_{};
|
||||
|
||||
// Estat actual de la FSM de sala. S'inicialitza a ROOM_INTRO al ctor
|
||||
// perquè cada vegada que entres al joc passes per la presentació de
|
||||
// la sala. La transició a PLAYING l'orquestra `updateRoomTransition`.
|
||||
|
||||
Reference in new issue
Block a user