cocos2dx3.10 TiledMap超大显示

890次浏览

cocos2dx支持TiledMap的加载和显示,挺方便的。不过方便之余也有诸多的限制,如一个图集不能放在两个层上,还有就是当格子数超过一定数量时就不显示了。

图集问题就不说了,做的时候小心一点就可以了。下面来说说超大地格的显示问题。基本思路是当地图移动的时候,重新计算层的VBO。具体代码请下载查看,这里就不贴了。

以下是应用示例:

1
2
3
4
5
6
7
8
9
10
auto tiledMap = tmx::EasyTMXTiledMap::create("map.tmx");
tiledMap->setAnchorPoint(Vec2(0.5, 0.5));
tiledMap->setPosition(tiledMap->getContentSize() * 0.5);
auto scroll = cocos2d::ui::ScrollView::create();
scroll->setContentSize(getContentSize());
scroll->setInnerContainerSize(tiledMap->getContentSize());
scroll->setDirection(cocos2d::ui::ScrollView::Direction::BOTH);
scroll->addChild(tiledMap);
scroll->jumpToPercentBothDirection(Vec2(50, 50));
addChild(scroll);

代码下载:
EasyTXMTiledMap.zip