Libgdx:在分割之前旋转纹理区域

Libgdx:在分割之前旋转纹理区域,libgdx,Libgdx,我正在尝试从纹理区域创建动画。区域存储在由LibGdx纹理打包器创建的atlas文件中。我目前感兴趣的地区是: mygame/myregion rotate: true xy: 2, 544 size: 2574, 279 orig: 2574, 279 offset: 0, 0 index: -1 请注意rotate true属性。以下是文档中的示例: 该区域由4帧组成[它是由4帧而非单个图像组成的单个png图像],随后使用分割方法进行分割: int framesCount = 4; my

我正在尝试从纹理区域创建动画。区域存储在由LibGdx纹理打包器创建的atlas文件中。我目前感兴趣的地区是:

mygame/myregion
rotate: true
xy: 2, 544
size: 2574, 279
orig: 2574, 279
offset: 0, 0
index: -1

请注意rotate true属性。以下是文档中的示例:

该区域由4帧组成[它是由4帧而非单个图像组成的单个png图像],随后使用分割方法进行分割:

int framesCount = 4;
myRegion = skin.getRegion("mygame/myregion"),
int frameWidth = (int) Math.floor(myRegion.getRegionWidth() / (float) framesCount);
int frameHeight = myRegion.getRegionHeight();
TextureRegion[][] tmp = myRegion.split(frameWidth, frameHeight);    
System.arraycopy(tmp[0], 0, animationFrames, 0, framesCount);
当纹理区域未旋转时,分割效果良好,但在这种情况下,它从未正常工作。在本例中,区域高度>区域宽度

我可以通过检查纹理的高度/宽度或AtlasRegion rotate属性来确定纹理是否旋转

是否有一种方法可以在分割区域之前旋转该区域,因此在分割之前,它将如下所示:

或者,也许有更好的方法从蒙皮获取区域,因此,如果该区域由TexturePacker旋转,所有这些都将按预期工作

也发现了这个相关的问题:但没有帮助


作为解决方法,我在生成包时禁用了旋转,以避免出现问题。

如果您将四幅图像保存为具有相同名称和下划线后缀的单独文件(如myAnim_0.png、myAnim_1.png、myAnim_2.png等),则TexturePacker会为您执行此操作。在游戏中,您可以像这样从atlas加载它们:
textureAtlas.findRegions(“myAnim”)