Я использую плиточный редактор карт, чтобы получить tmx
файл и загрузил это в мою игру, которая разработана с cocos2d-x c ++ версия 3.15.1
Вот файл tmx:
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" tiledversion="1.0.2" orientation="orthogonal" renderorder="right-down" width="7" height="7" tilewidth="100" tileheight="100" nextobjectid="1">
<tileset firstgid="1" source="map.tsx"/>
<layer name="gamemap" width="7" height="7">
<data encoding="csv">
2,2,1,2,2,2,1,
2,2,2,2,2,1,1,
1,1,1,1,2,1,1,
1,1,2,1,1,2,1,
1,2,2,2,2,2,1,
1,1,1,1,1,1,1,
1,1,1,1,1,1,1
</data>
</layer>
</map>
И я использую это со следующим кодом:
auto tmap = TMXTiledMap::create("map/map.tmx");
auto layer = tmap->getLayer("gamemap"); //null here
auto size = tmap->getMapSize();
CCLOG(" %f, %f", size.height, size.width);
auto sprite = layer->getTileAt(Vec2(1, 1));
Я могу подтвердить, что tmap
был загружен успешно, но layer
является null
с проверкой локальных переменных в отладчике.
Я пробовал разные tmx
такой формат как xml
а также base64
но все они дают некоторый результат.
Что я сделал не так?
Я обнаружил, что не только я должен поместить tmx-файл в исходную папку, но также я должен импортировать tsx-файл Tileset-файла в той же папке, а также изображение, которое я загрузил в качестве TileX-файла. но сообщение об ошибке, которое выдает cocos2dx, может ввести в заблуждение решение. Моя плохая, чтобы не выложенная карта полностью понимала.
Других решений пока нет …