Libgdx TMXMA装载机使用打包瓷砖集

Libgdx TMXMA装载机使用打包瓷砖集,libgdx,texturepacker,Libgdx,Texturepacker,在旧的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

在旧的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一起使用。类似下面的操作将起作用,然后调用render

TiledMap map = new TmxMapLoader().load("maps/testmap.tmx");
我的问题是用于生成.tmx文件的原始tileselt.png,它的大小不是二的幂。所以我仍然需要使用纹理打包器或地图打包器来打包使用

我无法成功地将打包文件与.tmx关联

有没有办法解决这个问题


谢谢

它们不需要是二的幂。如果你有问题,比如你得到了两个错误集的力量纹理。setEnforcePotImagesfalse;在你的主课里面

您不再需要打包机,因此我认为您无法将打包机与tmx文件关联

如果使用TmxMapLoader,则瓷砖集需要位于.tmxfile的同一文件夹中。 如果它们位于不同的目录中,则需要在.tmx文件中配置源路径。以下是一个例子:

<tileset firstgid="257" name="mountain" tilewidth="32" tileheight="32">
  <image source="mountain.png" width="512" height="512"/>
</tileset>
是平铺的常规输出。如果Tileset位于例如config的内部,则需要如下更改:

<tileset firstgid="257" name="mountain" tilewidth="32" tileheight="32">
  <image source="config/mountain.png" width="512" height="512"/>
</tileset>
但它仍然需要是tmx文件所在路径的子文件夹


希望可能会有所帮助。

它们不需要是两个人的力量。如果你有问题,比如你得到了两个错误集的力量纹理。setEnforcePotImagesfalse;在你的主课里面

您不再需要打包机,因此我认为您无法将打包机与tmx文件关联

如果使用TmxMapLoader,则瓷砖集需要位于.tmxfile的同一文件夹中。 如果它们位于不同的目录中,则需要在.tmx文件中配置源路径。以下是一个例子:

<tileset firstgid="257" name="mountain" tilewidth="32" tileheight="32">
  <image source="mountain.png" width="512" height="512"/>
</tileset>
是平铺的常规输出。如果Tileset位于例如config的内部,则需要如下更改:

<tileset firstgid="257" name="mountain" tilewidth="32" tileheight="32">
  <image source="config/mountain.png" width="512" height="512"/>
</tileset>
但它仍然需要是tmx文件所在路径的子文件夹


希望这可能会有所帮助。

如果你的目标是GLES 1.0,你将需要两个瓷砖集的威力。有些设备可能允许在GLE1.0中不使用两个电源,但这不能保证。在GLES 2.0中,这一限制被解除,但您仍然可以从2的强大功能中获得更好的性能


您仍然可以使用TiledMapcker生成的贴图,只需使用AtlasTmxMapLoader而不是TmxMapLoader加载贴图。

如果您的目标是GLES 1.0,则需要两个TileSet的功率。有些设备可能允许在GLE1.0中不使用两个电源,但这不能保证。在GLES 2.0中,这一限制被解除,但您仍然可以从2的强大功能中获得更好的性能


您仍然可以使用TiledMapacker制作的地图,您只需要使用AtlasTmxMapLoader而不是TmxMapLoader来加载地图。

谢谢,如果图像大小不是二的幂,是否会影响图形性能?我不知道,但我真的不知道这些东西的背后是什么。谢谢,如果图像大小不是二的幂,它会影响图形性能吗?据我所知不是,但我真的不知道那东西的背后是什么。谢谢。我在看文件。看起来AtlasTmxMapLoader.loadMap是唯一能够将tmx与包文件关联的函数。这是我应该用的吗?我应该为[XmlReader.Element root]、[com.badlogic.gdx.maps.tiled.atlastmxmxmxploader.AtlasResolver resolver]和[atlastmxmxmxploader.AtlasTiledMapLoaderParameters参数]传递什么?非常感谢你!如果地图具有atlas属性,就像TiledAppacker一样,您可以调用load方法,传入tmx文件的路径。您是说altas属性也应该在tmx文件中的某个位置定义?TiledAppacker只是标准的[tileset.png+tileset packfile]。在哪里可以定义atlas属性?在.tmx文件中,属性是我是否应该将图像更改为atlas?或者类似的东西?啊,是的,如果你使用旧的平铺地图打包机,我猜它没有设置atlas属性。只需将properties元素添加到地图中,使用名称为atlas的单个属性,值为包文件的名称。或者,您可以使用新的平铺地图打包器重新生成地图册。谢谢。我在看文件。看起来AtlasTmxMapLoader.loadMap是唯一能够将tmx与包文件关联的函数。这是我应该用的吗?我应该为[XmlReader.Element root]、[com.badlogic.gdx.maps.tiled.atlastmxmxmxploader.AtlasResolver resolver]和[atlastmxmxmxploader.AtlasTiledMapLoaderParameters参数]传递什么?非常感谢你!如果您的地图具有atlas属性,就像TiledAppacker一样,您可以调用load方法,传入tmx文件的路径。您的意思是altas属性也应该在
tmx文件?TiledAppacker只是标准的[tileset.png+tileset packfile]。在哪里可以定义atlas属性?在.tmx文件中,属性是我是否应该将图像更改为atlas?或者类似的东西?啊,是的,如果你使用旧的平铺地图打包机,我猜它没有设置atlas属性。只需将properties元素添加到地图中,使用名称为atlas的单个属性,值为包文件的名称。或者,您可以使用新的平铺地图打包器重新生成地图册。