我正在加载使用Tiled软件创建的400x400平铺地图。 一个图块为120像素,总计48000x48000像素。
我像这样加载
regionMap->initWithTMXFile("background2.tmx");
mapLayer->addChild(regionMap, 0, enTagTileMap);
mapLayer->setAnchorPoint(CCPoint(0,1));
然后我像这样滚动。
mapLayer->setPosition(position);
当我垂直滚动到这个位置时,我不再从地图上得到瓷砖了,我只是得到了黑色瓷砖。
x=0 , y=5483.748535
当我横向滚动时,即使我到达这个位置,我也不会遇到同样的问题。
x=-48000, y=400
感谢您提前。
答案 0 :(得分:1)
我认为假设cocos2d-x的tilemap渲染器是cocos2d-iphone中的直接端口是公平的。如果为true,则它们都具有相同的限制,可以显示最多65,536个顶点(16,384个tile)(不计算空的tile)。
您的贴图是400x400 = 160,000个贴图,假设只有一个图层且没有任何“空”贴图(空= =瓷砖位置,GID值为0)。这意味着cocos2d将会/可以渲染的瓷砖数量大约是其十倍。
Cocos2d最多可渲染16,384个图块,然后停止,剩余的图块将不会呈现,因此您将看到背景颜色(默认值:黑色)。
一个常见但又笨拙的解决方法是将地图拆分为多个TMX文件并将其与代码对齐。