我正在使用动画类制作一个只有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));
但我不认为这是最好的主意......我认为很慢可以制造错误。
答案 0 :(得分:6)
您通常使用 TextureRegion 作为精灵。您正在寻找的方法是TextureRegion#setRegion(Sprite扩展TextureRegion)。
像这样:
sprite.setRegion(animation.getKeyFrame(time));