Libgdx 带有纹理打包器的透明像素的图像为黑色

Libgdx 带有纹理打包器的透明像素的图像为黑色,libgdx,texturepacker,Libgdx,Texturepacker,我试着用透明图像创建纹理图集来制作动画。取而代之的是我的纹理,我最终得到的是黑色正方形图像,与我想打包到纹理图集中的第一个纹理的大小相匹配。我使用这个纹理打包器是因为libgdx的gui由于某种原因无法打包它(它说发生了错误)。。在使用透明图像之前,我将其用于普通、非透明图像,效果很好。因为涉及到透明度,我似乎得到了黑色图像。有人对透明纹理有类似的问题吗 代码: 使用纹理打包器创建的mainCharacter.png包含透明区域,因此效果良好。这里的问题很可能是纹理大小: 尺寸:48494069

我试着用透明图像创建纹理图集来制作动画。取而代之的是我的纹理,我最终得到的是黑色正方形图像,与我想打包到纹理图集中的第一个纹理的大小相匹配。我使用这个纹理打包器是因为libgdx的gui由于某种原因无法打包它(它说发生了错误)。。在使用透明图像之前,我将其用于普通、非透明图像,效果很好。因为涉及到透明度,我似乎得到了黑色图像。有人对透明纹理有类似的问题吗

代码:


使用纹理打包器创建的mainCharacter.png包含透明区域,因此效果良好。

这里的问题很可能是纹理大小:

尺寸:48494069

您必须保持在4096以下,即使这样也可能无法在所有设备上工作。我建议保持在2048x2048以下


这是一个硬件限制-对此你无能为力。

你完全正确。为了在移动平台上安全起见,我选择了1024x1024,因为这是libgdx文档推荐的数字。
mainCharAtlas= new TextureAtlas("Sh/mainChar.txt");
        mainCharRegions= new Array<TextureAtlas.AtlasRegion>(mainCharAtlas.getRegions());
        mainCharAnim= new Animation(1f/31f,mainCharRegions);

        mainChar= Decal.newDecal(mainCharRegions.first(),true);
        CameraGroupStrategy cameraGroupStrategy = new CameraGroupStrategy(camera);
        decalBatch=new DecalBatch(cameraGroupStrategy);
        mainChar.setPosition(0.14f, 0f - 1.83f, 0.64f);
        mainChar.setWidth(7f);

        mainChar.setHeight(7f);
        mainChar.setRotation(0, 90, 20.5F);
mainCharacter.png
size: 4849, 4069
format: RGBA8888
filter: Linear,Linear
repeat: none
01
  rotate: false
  xy: 571, 1
  size: 568, 568
  orig: 906, 906
  offset: 168, 167
  index: -1
02
  rotate: true
  xy: 1141, 1
  size: 568, 572
  orig: 906, 906
  offset: 166, 161
  index: -1
03
  rotate: true
  xy: 2922, 1
  size: 577, 606
  orig: 906, 906
  offset: 161, 144
  index: -1