使用cocos2d-x滚动大型瓷砖地图给我带有绿色瓷砖的黑色瓷砖

时间:2013-12-15 11:17:57

标签: cocos2d-x tmx

我正在加载使用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

感谢您提前。

1 个答案:

答案 0 :(得分:1)

我认为假设cocos2d-x的tilemap渲染器是cocos2d-iphone中的直接端口是公平的。如果为true,则它们都具有相同的限制,可以显示最多65,536个顶点(16,384个tile)(不计算空的tile)。

您的贴图是400x400 = 160,000个贴图,假设只有一个图层且没有任何“空”贴图(空= =瓷砖位置,GID值为0)。这意味着cocos2d将会/可以渲染的瓷砖数量大约是其十倍。

Cocos2d最多可渲染16,384个图块,然后停止,剩余的图块将不会呈现,因此您将看到背景颜色(默认值:黑色)。

一个常见但又笨拙的解决方法是将地图拆分为多个TMX文件并将其与代码对齐。