feat(map): afegeix Map::isPaintable(col, row)
This commit is contained in:
1 parent
48ff1839bc
commit
00eb696859
2 files changed
+23
No files matched your search
@@ -106,6 +106,23 @@ namespace Map {
|
||||
return box.x >= static_cast<float>(playfield_x) && box.y >= static_cast<float>(playfield_y) && box.x + box.w <= static_cast<float>(playfield_x + playfield_w) && box.y + box.h <= static_cast<float>(playfield_y + playfield_h);
|
||||
}
|
||||
|
||||
auto isPaintable(int col, int row) -> bool {
|
||||
// Construïm la caixa píxel del tile a partir de l'origen del tilemap.
|
||||
// El grid és 16-alineat respecte a `tilemap_origin_*`; per a un tile
|
||||
// (col,row) la cantonada superior-esquerra cau a:
|
||||
// x = tilemap_origin_x + col * tile_size
|
||||
// y = tilemap_origin_y + row * tile_size
|
||||
const SDL_FRect BOX{
|
||||
.x = static_cast<float>(tilemap_origin_x + (col * tile_size)),
|
||||
.y = static_cast<float>(tilemap_origin_y + (row * tile_size)),
|
||||
.w = static_cast<float>(tile_size),
|
||||
.h = static_cast<float>(tile_size),
|
||||
};
|
||||
if (!insidePlayfield(BOX)) { return false; }
|
||||
if (collides(BOX)) { return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
auto makeInfo() -> Info {
|
||||
return {
|
||||
.playfield_x = playfield_x,
|
||||
|
||||
@@ -81,6 +81,12 @@ namespace Map {
|
||||
// entitats dinàmiques per validar posicions candidates del seu step.
|
||||
[[nodiscard]] auto insidePlayfield(const SDL_FRect& box) -> bool;
|
||||
|
||||
// true si el tile (col, row) — coordenades del tilemap, amb origen
|
||||
// `tilemap_origin_*` — és "sòl transitable" i per tant pintable: cau
|
||||
// completament dins del playfield i no s'encavalca cap sarcòfag. Ho
|
||||
// usa el `PaintLayer` per filtrar quines cel·les accepten pintat.
|
||||
[[nodiscard]] auto isPaintable(int col, int row) -> bool;
|
||||
|
||||
// Snapshot plà de la geometria del mapa + punters a `collides` /
|
||||
// `insidePlayfield`. Pensat per ser passat per valor (POD petit,
|
||||
// trivialment copiable). Un cop construïda, llegeix els valors
|
||||
|
||||
Reference in new issue
Block a user