Основываясь на результатах тестирования, я собираюсь ответить на ваши вопросы в обратном порядке, исходя из поведения Tiled 0.16.1.
Вы также можете сначала добавить отдельные изображения и использовать вывод XML (* .tmx), поскольку, на мой взгляд, это немного проще, чем вывод JSON для просмотра формата данных. Я обеспечиваю один ниже:
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" renderorder="right-down" width="10" height="10" tilewidth="64" tileheight="64" nextobjectid="1">
<tileset firstgid="1" name="second" tilewidth="64" tileheight="64" tilecount="3" columns="0">
<tile id="0">
<image width="64" height="64" source="../../../OneDrive/Projects/Tiles/forest.png"/>
</tile>
<tile id="1">
<image width="64" height="64" source="../../../OneDrive/Projects/Tiles/forest-dirt-corner-ne.png"/>
</tile>
<tile id="2">
<image width="64" height="64" source="../../../OneDrive/Projects/Tiles/forest-dirt-corner-nw.png"/>
</tile>
</tileset>
<tileset firstgid="4" name="third" tilewidth="64" tileheight="64" tilecount="1" columns="0">
<tile id="0">
<image width="64" height="64" source="../../../OneDrive/Projects/Tiles/grass.png"/>
</tile>
</tileset>
<tileset firstgid="5" name="first" tilewidth="64" tileheight="64" tilecount="2" columns="0">
<tile id="0">
<image width="64" height="64" source="../../../OneDrive/Projects/Tiles/dirt.png"/>
</tile>
<tile id="1">
<image width="64" height="64" source="../../../OneDrive/Projects/Tiles/dirt-forest-corner-ne.png"/>
</tile>
</tileset>
<layer name="Tile Layer 1" width="10" height="10">
<data encoding="csv">
1,2,3,0,0,0,0,0,0,0,
4,0,0,0,0,0,0,0,0,0,
5,6,0,0,0,0,0,0,0,0,
1,2,3,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0
</data>
</layer>
</map>
2. Как Идентификаторы генерируются?
Прежде всего, важно понимать, что есть один или несколько элементов tileset
, которые имеют атрибут firstgid
. Per the documentation:
firstgid: Первая глобальная плитка ID этого набора фишек (это глобальная ID карта к первой плитке в этом наборе фишек).
Дополнительно:
Первый tileset
всегда имеет firstgid
значение 1.
Чуть дальше мы получаем объяснение tile
и id
:
ид : Локальный идентификатор плитки в своем тайнике.
Таким образом, в приведенном выше примере, вы увидите, что tileset firstgid="1"
имеет в нем три tile
элементов, с id
s в пределах от 0 до 2. Выполнение математических операций вы видите, что это плитка с уникальными идентификаторами 1, 2 , и 3.
В следующем tileset
есть firstgid
из 4, так как плитки с id
с 1, 2 и 3 уже были раньше.Первый tile
внутри имеет id
0, а так как 4 + 0 = 4, мы знаем, что такое наш 4-й tile
.
Если плитки перемещаются в интерфейсе с черепицей, соответственно, соответственно обновляются идентификаторы. Таким образом, первая плитка в первом наборе тарелок всегда будет иметь идентификатор 1.
Например, если у меня есть 3 листа 5x5 плитки, они будут 1-75? Но в каком порядке?
Так что да, и это было бы основано на порядке наборов плиток, на которые были добавлены плиточные листы.
1. Как генерируются идентификаторы для массива data
?
Иды основаны на сгенерированных идентификаторах, которые связывают ваш второй вопрос, ответивший выше. «0» означает, что плитка не установлена, а «1» - первая плитка (верхняя левая) в первом наборе плиток.
Итак:
Например, если у меня есть плитка листа 5х5, они будут просто быть 1 через 25 слева направо, сверху вниз?
Да.