feat(map): door_col a la geometria + passadís de sortida a Map
This commit is contained in:
1 parent
63bb41425a
commit
b54f3fc622
3 files changed
+50
No files matched your search
@@ -62,6 +62,24 @@ namespace Map {
|
||||
inline int playfield_w = 0;
|
||||
inline int playfield_h = 0;
|
||||
|
||||
// Porta de sortida del nivell. La porta sempre viu al mur trasser
|
||||
// (`wall_north`); només la columna varia per nivell. `door_col` és la
|
||||
// columna central transitable: el sprite 48×32 es dibuixa centrat
|
||||
// sobre aquesta columna i els 16 px centrals (just `door_col`) són
|
||||
// l'únic forat del mur trasser per on el jugador surt. Derivat de
|
||||
// `geometry.door_col` al YAML.
|
||||
inline int door_col = 0;
|
||||
inline int door_corridor_x = 0;
|
||||
inline int door_corridor_y = 0;
|
||||
inline int door_corridor_w = 0;
|
||||
inline int door_corridor_h = 0;
|
||||
// Estat del passadís: si la porta està oberta, el `door_corridor` no
|
||||
// bloqueja el moviment del jugador (vegeu `Map::collides`). Qui muta
|
||||
// aquest flag és l'entitat `Door` quan transita CLOSED → OPEN; el
|
||||
// reset el porta `Map::loadFrom` (cada càrrega de nivell el torna a
|
||||
// posar a false).
|
||||
inline bool door_open = false;
|
||||
|
||||
// Carrega el bloc `geometry:` del YAML i recalcula tots els derivats.
|
||||
// Ha de cridar-se abans d'instanciar `Player` o consultar `collides()`:
|
||||
// GameScene ho fa al ctor.
|
||||
@@ -104,6 +122,13 @@ namespace Map {
|
||||
int tile_size{0};
|
||||
int tilemap_origin_x{0};
|
||||
int tilemap_origin_y{0};
|
||||
// Passadís de sortida (forat del mur trasser a la columna de la
|
||||
// porta). El Player l'usa des del clamp per permetre pujar al
|
||||
// strip del mur quan la base box queda dins del rang X.
|
||||
int door_corridor_x{0};
|
||||
int door_corridor_y{0};
|
||||
int door_corridor_w{0};
|
||||
int door_corridor_h{0};
|
||||
bool (*collides)(const SDL_FRect&){nullptr};
|
||||
bool (*inside_playfield)(const SDL_FRect&){nullptr};
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user