Add transperency when units are behind
This commit is contained in:
@@ -465,6 +465,27 @@ void bzTileMapDrawCollisions(BzTileMap *map) {
|
||||
}
|
||||
}
|
||||
|
||||
void bzTileMapClearCollisions(BzTileMap *map) {
|
||||
BZ_ASSERT(map->collisionMap);
|
||||
for (i32 y = 0; y < map->width; y++) {
|
||||
for (i32 x = 0; x < map->height; x++) {
|
||||
i32 idxOffset = y * map->width + x;
|
||||
u8 *cell = map->collisionMap + idxOffset;
|
||||
*cell = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
void bzTileMapClearCollisionLayer(BzTileMap *map, i32 layer) {
|
||||
BZ_ASSERT(map->collisionMap);
|
||||
BZ_ASSERT(layer >= 0 && layer < 8);
|
||||
for (i32 y = 0; y < map->width; y++) {
|
||||
for (i32 x = 0; x < map->height; x++) {
|
||||
i32 idxOffset = y * map->width + x;
|
||||
u8 *cell = map->collisionMap + idxOffset;
|
||||
*cell &= ~(1 << layer);
|
||||
}
|
||||
}
|
||||
}
|
||||
bool bzTileMapHasAnyCollision(BzTileMap *map, i32 x, i32 y) {
|
||||
if (!map->collisionMap) return false;
|
||||
i32 idx = y * map->width + x;
|
||||
|
||||
@@ -132,6 +132,8 @@ bool bzTileMapCanRayCastLine(BzTileMap *map, Vector2 from, Vector2 to);
|
||||
void bzTileMapDraw(BzTileMap *map);
|
||||
|
||||
void bzTileMapDrawCollisions(BzTileMap *map);
|
||||
void bzTileMapClearCollisions(BzTileMap *map);
|
||||
void bzTileMapClearCollisionLayer(BzTileMap *map, i32 layer);
|
||||
bool bzTileMapHasAnyCollision(BzTileMap *map, i32 x, i32 y);
|
||||
bool bzTileMapHasCollision(BzTileMap *map, i32 layer, i32 x, i32 y);
|
||||
void bzTileMapSetCollisions(BzTileMap *map, bool collision, i32 layer, i32 startX, i32 startY, i32 sizeX, i32 sizeY);
|
||||
|
||||
Reference in New Issue
Block a user