Делаешь для тайла поле "слой", а при отрисовке такая конструкция:
for lay=0 to layerCount-1
drawTile(tile, lay)
next
function drawTile(tile, layer)
if(tile\layer <> layer) return //выходим, если не тот слой
//тут рисуем тайл
end function
Это псевдокод, для тайла надо ещё тип тайла в параметре функции указать.