libgdx-用动画改变精灵纹理

Bol*_*aul 3 java animation sprite libgdx

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

if (!animation.isAnimationFinished(time))
    time += Gdx.graphics.getDeltaTime();
else
    time = 0;
Run Code Online (Sandbox Code Playgroud)

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

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

 sprite.setTexture(animation.getKeyFrame(time).getTexture());
Run Code Online (Sandbox Code Playgroud)

不行.

这有效

sprite = new Sprite(animation.getKeyFrame(time));
Run Code Online (Sandbox Code Playgroud)

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

Les*_*tat 6

您通常使用TextureRegion作为精灵.您正在寻找的方法是TextureRegion #setRegion(Sprite扩展TextureRegion).

像这样:

sprite.setRegion(animation.getKeyFrame(time));
Run Code Online (Sandbox Code Playgroud)