LibGdx纹理包装

时间:2017-01-02 07:25:26

标签: libgdx texture-packing

我想在我的LibGdx项目中使用动画精灵字符。

我有精灵表,也有精灵动画的单独图像。

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

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

另外,我想知道命名那些单独的精灵表图像。 我是以" name_01,name_02 .....等"。

的方式命名的。

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

2 个答案:

答案 0 :(得分:0)

您必须使用纹理包装器。 https://code.google.com/archive/p/libgdx-texturepacker-gui/

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

答案 1 :(得分:0)

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

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

然后你可以调用getArray(gameAtlas.findRegion("resourceName"),x,y);方法。返回TextureRegion数组,可用作Animation类的参数。

 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;
    }