libGDX TextureAtlas - 在运行时提供主纹理文件名

时间:2015-05-21 14:32:09

标签: libgdx

我想对多个主纹理文件使用相同的.atlas文件。 这可以通过使用多个几乎相同的.atlas文件(仅与纹理文件名称的第一行不同)轻松实现,但它不是最好的解决方案。

我想知道在运行时,在TextureAtlas对象创建期间或之后是否可以提供主纹理文件的名称。 我快速浏览了TextureAtlas代码,但API似乎不允许这样做,至少不是以直截了当的方式。

2 个答案:

答案 0 :(得分:0)

您可以将图像目录传递给TextureAtlas构造函数。我没有尝试过,但似乎你可以拥有你的单个.atlas文件,然后在不同的目录中有单独的纹理文件。

来自TextureAtlas ...

public TextureAtlas (FileHandle packFile, FileHandle imagesDir) {
    this(packFile, imagesDir, false);
}

/** @param flip If true, all regions loaded will be flipped for use with a perspective where 0,0 is the upper left corner. */
public TextureAtlas (FileHandle packFile, FileHandle imagesDir, boolean flip) {
    this(new TextureAtlasData(packFile, imagesDir, flip));
}

答案 1 :(得分:0)

经过一些研究,似乎实现它的唯一方法是扩展TextureAtlas然后复制和修改构造函数代码。 目前,只需读取atlas文件的第一行即可获得纹理文件的名称:

String line = reader.readLine();
                    if (line == null) break;
                    if (line.trim().length() == 0)
                        pageImage = null;
                    else if (pageImage == null) {
                        FileHandle file = imagesDir.child(line);

不需要这样做,而是需要使用作为构造函数的参数传递的文件名来创建FileHandle。

在这种情况下,我将坚持使用多个地图集文件: - )