在旧的libgdx地图api中,他们曾经拥有
map = TiledLoader.createMap(Gdx.files.internal("maps/testmap.tmx"));
atlas = new TileAtlas(map, Gdx.files.internal("maps"));
tileMapRenderer = new TileMapRenderer(map, atlas, 8, 8);
然而,在新的libgdx中规则发生变化,加载tilemap不再需要先使用map packer。您可以直接将.tmx文件与tileset png一起使用。像下面这样的东西可以工作,然后调用渲染。
TiledMap map = new TmxMapLoader().load("maps/testmap.tmx");
我的问题是用于生成.tmx文件的原始tileselt.png,它的大小不是2的幂。因此,我仍然需要使用纹理包装器或地图打包器将其打包以供使用。
我无法将打包文件与.tmx;
成功关联无论如何都要解决这个问题吗?
由于
答案 0 :(得分:4)
如果你的目标是GLES 1.0,那么你将需要两个二次幂的tileset。某些设备可能允许使用GLES 1.0的非2次幂,但这不能保证。使用GLES 2.0可以解除这个限制,但是你仍然可以通过2次幂获得更好的性能。
您仍然可以使用TiledMapPacker制作的地图,您只需要使用AtlasTmxMapLoader
而不是TmxMapLoader
加载地图。
答案 1 :(得分:1)
他们不需要两个人的力量。如果您遇到问题,就像在MainClass中获得两个错误集Texture.setEnforcePotImages(false);
的强大功能。
您不再需要打包器了,所以我认为您无法将打包器与tmx文件关联起来。
如果您使用TmxMapLoader
,则tileset需要位于.tmx
文件的同一文件夹中。
如果它们位于不同的目录中,则需要在.tmx
文件中配置源路径。这是一个例子:
<tileset firstgid="257" name="mountain" tilewidth="32" tileheight="32">
<image source="mountain.png" width="512" height="512"/>
</tileset>
是Tiled的常规输出。如果Tileset在例如配置中,你需要改变它:
<tileset firstgid="257" name="mountain" tilewidth="32" tileheight="32">
<image source="config/mountain.png" width="512" height="512"/>
</tileset>
但它仍然需要是tmx文件所在路径的子文件夹。
关心希望可能会有所帮助。