feat(game-scene): ROOM_INTRO — fade in del món i text d'entrada de sala
This commit is contained in:
1 parent
368f9d2d6a
commit
67b06c0a10
2 files changed
+179
-38
No files matched your search
@@ -185,12 +185,35 @@ class GameScene : public Scene {
|
||||
// la sala. La transició a PLAYING l'orquestra `updateRoomTransition`.
|
||||
State state_{State::ROOM_INTRO};
|
||||
|
||||
// Sub-fase i temps acumulat dins de l'estat actual. `setState` el
|
||||
// reseteja a {0, 0}. La interpretació depèn de l'estat:
|
||||
// ROOM_INTRO: 0=fade_in, 1=text_delay, 2=text_enter, 3=text_hold, 4=text_exit
|
||||
// ROOM_OUTRO: 0=text_enter, 1=text_hold, 2=text_exit, 3=fade_out
|
||||
// PLAYING: no s'usa (updateRoomTransition no avança res).
|
||||
struct RoomTransition {
|
||||
int phase{0};
|
||||
int elapsed_ms{0};
|
||||
} transition_{};
|
||||
|
||||
// Índex de sala que es passa com a paràmetre {n} al text d'intro.
|
||||
// Avui és sempre 1 (no hi ha itinerari de sales encara). Quan
|
||||
// arribi l'itinerari, és el camp que es modificarà al transicionar
|
||||
// de ROOM_OUTRO → ROOM_INTRO per saltar a la pròxima.
|
||||
int room_index_{1};
|
||||
|
||||
// Substitueix `{n}` de `Locale::get().text("game.room_intro")` per
|
||||
// l'enter passat. Pensat com a primer pas mínim cap a un format
|
||||
// genèric: si apareix més text parametritzat, val la pena ascendir
|
||||
// a un `Locale::format` propi. Estàtica perquè no depèn d'estat de
|
||||
// l'escena (només consulta el Locale singleton).
|
||||
[[nodiscard]] static auto formatRoomTitle(int n) -> std::string;
|
||||
|
||||
// Píxels del fade negre i del text de la transició de sala.
|
||||
// Cridats des de `render()` entre el bloc d'actors i el HUD —
|
||||
// així marcador, notificacions i service menu queden per damunt.
|
||||
void renderRoomFade();
|
||||
void renderRoomText();
|
||||
|
||||
#ifdef _DEBUG
|
||||
// Editor modal del tilemap. Mútuament excloent amb la pausa: si la
|
||||
// pausa no està IDLE la tecla de toggle de l'editor s'ignora, i
|
||||
|
||||
Reference in new issue
Block a user