LibGdx 纹理包装

LibGdx Texture packing

我想在我的 LibGdx 项目中使用动画精灵角色。

我有 sprite sheets 以及用于 sprite 动画的单独图像。

创建纹理图集时,我是否必须使用精灵 sheet 本身或单独的图像进行打包? 哪种方法最好?

目前我正在使用单独的图像为每个精灵动画创建单独的图集,并将包和 png 文件添加到资产文件夹。这是工作。但我希望有一些方法可以有效地为游戏使用一个pack文件和一个png文件。

我还想知道如何命名这些单独的精灵 sheet 图片。 我将其命名为 "name_01,name_02.....etc".

请建议为整个游戏创建包含精灵 sheet 和非精灵图像的单一纹理图集的更好方法。

您将不得不使用纹理打包器。 https://code.google.com/archive/p/libgdx-texturepacker-gui/

创建精灵 sheet 作为动画的一个纹理并将它们打包。

将所有精灵动画图像打包到一个文件包中。

如果要使用 AssetManager,则从 AssetManager 获取 TextureAtlas,或者您可以创建 TextureAtlas 对象。

然后就可以调用getArray(gameAtlas.findRegion("resourceName"),x,y);方法了。 returns TextureRegion 数组可以用作 Animation class.

的参数
 public TextureRegion[] getArray(TextureRegion textureRegion,int column,int row){

        TextureRegion[][] arrayTextureRegion= textureRegion.split(textureRegion.getRegionWidth()/column,textureRegion.getRegionHeight()/row);
        TextureRegion textureRegion1[]=new TextureRegion[arrayTextureRegion[0].length*arrayTextureRegion.length];

        for (int i=0;i<arrayTextureRegion.length;i++)
            for (int j=0;j<arrayTextureRegion[i].length;j++)
                textureRegion1[i*arrayTextureRegion[i].length+j]=arrayTextureRegion[i][j];

        return textureRegion1;
    }