【问题标题】:LibGdx Texture packingLibGdx 纹理打包
【发布时间】:2017-05-16 07:47:46
【问题描述】:

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

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

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

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

我还想知道如何命名这些单独的精灵表图像。 我将它命名为“name_01,name_02.....etc”。

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

【问题讨论】:

    标签: libgdx texture-packing


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      如果您想使用 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;
          }
      

      【讨论】:

        猜你喜欢
        • 2014-07-03
        • 1970-01-01
        • 1970-01-01
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-09
        相关资源
        最近更新 更多