Libgdx-更改精灵纹理并带有动画。

3

我正在使用动画类来制作一个简单的动画,只有两帧。 使用动画,我可以获得当前时间的索引或纹理区域。

if (!animation.isAnimationFinished(time))
    time += Gdx.graphics.getDeltaTime();
else
    time = 0;

但问题是,我无法加载任何纹理,它的宽度和高度必须是2的幂次方,因此我有一个具有2个图像的大型1024x1024纹理。

使用sprite.setTexture(),我只能放置一张纹理,但animation.getframe返回一个纹理区域。

有没有一种方法可以通过动画更改精灵纹理?

另外

 sprite.setTexture(animation.getKeyFrame(time).getTexture());

无法工作。

这个有效。

sprite = new Sprite(animation.getKeyFrame(time));

但我认为这不是最好的想法...我认为它会很慢,可能会产生错误。

1个回答

6

在精灵中通常使用TextureRegion。您需要查找的方法是TextureRegion#setRegion(Sprite扩展TextureRegion)。

像这样:

sprite.setRegion(animation.getKeyFrame(time));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接