Exemplo n.º 1
0
int MapTileLayer::_tileRegion(const Coordinate& a, const Coordinate& b, int lod, bool async)
{
    MapLoader* loader = MapViewLayer::Context.Loader;
    auto ai = loader->getTileIndex(a, lod);
    auto bi = loader->getTileIndex(b, lod);
    Coordinate size = loader->getTileSize(lod);
    
    cocos2d::log("Map rebuild (%d,%d) (%d,%d)", ai.first, ai.second, bi.first, bi.second);
    int tilesNotYetLoaded = 0;
    for(int i = ai.second; i <= bi.second; ++i) // y axis
    {
        for(int j = ai.first; j <= bi.first; ++j) // x axis
        {
            Coordinate position = Coordinate(j*size.x, i*size.y);
            const MapTileInfo& tileInfo = loader->getMapTileInfo({j, i}, lod);
            tilesNotYetLoaded += addTile(tileInfo, position, size, async);
        }
    }
    return tilesNotYetLoaded;
}