treballant en el extendedMap per a les colisións fora de pantalla
This commit is contained in:
@@ -30,7 +30,9 @@ class TileCollider {
|
||||
float surface_y{0};
|
||||
};
|
||||
|
||||
explicit TileCollider(const std::vector<int>& collision_tile_map);
|
||||
// Constructor: recibe el tilemap extendido y sus dimensiones.
|
||||
// border_px es el offset en píxeles para traducir coordenadas de room-space a extended-map.
|
||||
TileCollider(const std::vector<int>& extended_tile_map, int width, int height, int border_px);
|
||||
|
||||
// Queries básicas
|
||||
[[nodiscard]] auto getTileAt(int tile_x, int tile_y) const -> Tile;
|
||||
@@ -53,10 +55,19 @@ class TileCollider {
|
||||
|
||||
private:
|
||||
static constexpr int TS = ::Tile::SIZE;
|
||||
static constexpr int MW = ::Map::WIDTH;
|
||||
static constexpr int MH = ::Map::HEIGHT;
|
||||
|
||||
int width_; // Ancho total del tilemap extendido (en tiles)
|
||||
int height_; // Alto total del tilemap extendido (en tiles)
|
||||
int border_px_; // Offset en píxeles (CollisionBorder::PX)
|
||||
|
||||
const std::vector<int>& tile_map_;
|
||||
|
||||
[[nodiscard]] static auto toTile(int px) -> int { return px / TS; }
|
||||
// Convierte píxeles en room-space a índice de tile en el mapa extendido.
|
||||
// Nota: asume que px >= -border_px_ (el jugador no puede estar más allá del borde).
|
||||
[[nodiscard]] auto toTile(int px) const -> int { return (px + border_px_) / TS; }
|
||||
|
||||
// Convierte índice de tile del mapa extendido a píxeles en room-space.
|
||||
[[nodiscard]] auto toPixel(int tile) const -> float {
|
||||
return static_cast<float>((tile * TS) - border_px_);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user