libgdx-使用动画更改精灵纹理



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

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

但问题是,我无法加载任何纹理,它的宽度和高度必须是 2 的幂,所以我得到了一个大的 1024x1024 纹理,它有 2 张图像。使用 sprite.setTexture() 我只能放置一个纹理,但 animation.getframe 返回一个纹理区域。

有没有办法用动画改变精灵纹理?

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

不工作。

这行得通

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

但我不认为是最好的主意...我认为慢可以制造错误。

你通常将 TextureRegion 用于精灵。你要找的方法是 TextureRegion#setRegion(Sprite 扩展了 TextureRegion)。

喜欢这个:

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

最新更新