XMXtiledmap getLayer () возвращает null с файлом tmx в cocos2dx

Я использую плиточный редактор карт, чтобы получить 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 но все они дают некоторый результат.

Что я сделал не так?

0

Решение

Я обнаружил, что не только я должен поместить tmx-файл в исходную папку, но также я должен импортировать tsx-файл Tileset-файла в той же папке, а также изображение, которое я загрузил в качестве TileX-файла. но сообщение об ошибке, которое выдает cocos2dx, может ввести в заблуждение решение. Моя плохая, чтобы не выложенная карта полностью понимала.

введите описание изображения здесь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]