我正在加载使用平铺软件创建的400x400平铺图。一个瓦片是120个像素,总共4800x48000个像素。
我像这个一样加载
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
谢谢你的预付款。
我认为可以公平地假设cocos2d-x的tilemap渲染器是cocos2d-iphone中渲染器的直接端口。如果为true,则它们都具有相同的限制,即最多可以显示65536个顶点(16384个瓦片)(不包括空瓦片)。
假设只有一层并且没有任何"空"瓷砖(空==GID值为0的瓷砖位置),则瓷砖贴图为400x400=160000个瓷砖。这意味着cocos2d将/可以渲染的瓦片数量大约是它的十倍。
Cocos2d将只渲染16384个瓦片,然后停止,剩余的瓦片将不会渲染,因此您将看到背景颜色(默认值:黑色)。
一个常见但尴尬的解决方法是将映射拆分为几个TMX文件,并在代码中对齐它们。