libgdx:使用多个瓦片集时瓦片地图渲染不正确
libgdx: tiled map renders incorrectly when using multiple tilesets
我已经开始使用 libGDX 来加载使用 Tiled 制作的 tmx 地图,但有一个奇怪的问题,即当我使用第二个 tileset 时,我的程序停止正确显示地图,要么什么都不显示在所有或使用完全不同的瓷砖。即使没有使用其他 tileset 中的 tiles 也会发生这种情况,只是使用第二个 tileset 标签将其搞砸了。在 Tiled 中打开它时,一切看起来仍然很好,我对 tmx 格式不够熟悉,不知道是渲染器还是数据搞砸了。我使用的 libGDX 代码与下面的教程相同,但使用了不同的图块集(我已经能够单独正确渲染这两个图块集),尽管我也尝试了渲染代码的其他变体,但没有任何运气 。
平铺地图
我看到的运行我的程序
tmx 文件:
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.2" tiledversion="1.3.1" orientation="orthogonal" renderorder="right-down" compressionlevel="-1" width="32" height="32" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="1">
<tileset firstgid="1" source="sprites.tsx"/>
<tileset firstgid="1025" source="tileset.tsx"/>
<layer id="1" name="Tile Layer 1" width="32" height="32">
<data encoding="base64">
KgQAACoEAAAqBAAAKgQAACoEAAAqBAAAKgQAACoEAAAqBAAAKg...
</data>
</layer>
<layer id="2" name="Tile Layer 2" width="32" height="32">
<data encoding="base64">
iQAAAMEBAADBAQAAwQEAAMEBAADBAQAAwQEAAMEBAADBAQAAw...
</data>
</layer>
</map>
这是最新版本中的错误。它固定在 master 分支中。见 https://github.com/libgdx/libgdx/pull/5722
您可以暂时使用 libgdx 1.9.11-SNAPSHOT 让它工作。
我已经开始使用 libGDX 来加载使用 Tiled 制作的 tmx 地图,但有一个奇怪的问题,即当我使用第二个 tileset 时,我的程序停止正确显示地图,要么什么都不显示在所有或使用完全不同的瓷砖。即使没有使用其他 tileset 中的 tiles 也会发生这种情况,只是使用第二个 tileset 标签将其搞砸了。在 Tiled 中打开它时,一切看起来仍然很好,我对 tmx 格式不够熟悉,不知道是渲染器还是数据搞砸了。我使用的 libGDX 代码与下面的教程相同,但使用了不同的图块集(我已经能够单独正确渲染这两个图块集),尽管我也尝试了渲染代码的其他变体,但没有任何运气 。
平铺地图
我看到的运行我的程序
tmx 文件:
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.2" tiledversion="1.3.1" orientation="orthogonal" renderorder="right-down" compressionlevel="-1" width="32" height="32" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="1">
<tileset firstgid="1" source="sprites.tsx"/>
<tileset firstgid="1025" source="tileset.tsx"/>
<layer id="1" name="Tile Layer 1" width="32" height="32">
<data encoding="base64">
KgQAACoEAAAqBAAAKgQAACoEAAAqBAAAKgQAACoEAAAqBAAAKg...
</data>
</layer>
<layer id="2" name="Tile Layer 2" width="32" height="32">
<data encoding="base64">
iQAAAMEBAADBAQAAwQEAAMEBAADBAQAAwQEAAMEBAADBAQAAw...
</data>
</layer>
</map>
这是最新版本中的错误。它固定在 master 分支中。见 https://github.com/libgdx/libgdx/pull/5722
您可以暂时使用 libgdx 1.9.11-SNAPSHOT 让它工作。