动画帧从上一帧位置移了几个像素

时间:2019-01-13 09:16:44

标签: animation libgdx

在Libgdx中,我一直在使用textureAtlas和for循环来获取几乎可以正常工作的动画,无论出于何种原因,动画都会移动,就像for循环中的数字不正确或每个帧都有填充并且我不能找出原因。我使用的是https://code.google.com/archive/p/libgdx-texturepacker-gui/downloads,这些是我使用的设置:https://imgur.com/a/VIYY0ax,下面是一段视频:https://imgur.com/a/bo0denv

制作纹理图集时,我尝试了许多设置组合,但确实会产生各种组合,甚至可以一次使用,但是我不得不向纹理图集添加新的精灵,但无法成功复制它。所有图像的大小完全相同,并且鸽子都位于同一位置。精灵的位置(附加到在x轴上不移动的box2body)和大小永远不会改变

这是for循环的代码:

for (int i = 0; i < 4; i++) {
    frames.add(new TextureRegion(getTexture(), 4395 + (i * 74), 42, 74, 74));
}
healedPigeonFlying = new Animation<>(0.15f, frames);
frames.clear();

我希望鸽子的身体保持在同一位置,但是它会四处移动,好像数字错误或每帧之间都有填充。

1 个答案:

答案 0 :(得分:0)

切换到TexturePacker后,我得到了警告,它解决了我的问题;显然,使用4096x4096以上的图像会在几乎所有现代手机上引起问题(如本文中所述),而使用2048x2048以上的图像会在稍旧的手机上引起问题。我的图片是8192x8192。我迅速切换回旧程序,并设法将所有子画面压缩为两个不同的2048x2018纹理图集,其工作方式像一个魅力。