java - libgdx- 使用动画更改 Sprite 纹理

标签 java animation libgdx sprite

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

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

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

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

还有

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

不起作用。

这行得通

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

但我认为这不是最好的主意...我认为速度慢会产生错误。

最佳答案

您通常将 TextureRegion 用于 Sprite 。您正在寻找的方法是 TextureRegion#setRegion (Sprite 扩展了 TextureRegion)。

像这样:

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

关于java - libgdx- 使用动画更改 Sprite 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888125/

相关文章:

java - 使用 gdx-controllers 确定是否按下了 dpad 上的按钮

java - 根据某些规则替换 EditText 中的字母

java - 该进程无法访问该文件,因为该文件正在被另一个进程使用

java - 如何从 ServletRequestEvent 获取 URL 特定详细信息和请求类型(GET、POST、PUT)?

java - 我如何在netty4.x中的channelActive()方法中获取URL

java - Facebook 与 Android 上的 libgdx 集成

ios - 在 iPhone 上制作翻页动画(如杂志)

android - 动画后 map 不可见

jquery - CSS3 和 jQuery 的毛刺效果

java - 在哪里创建 LibGDX And​​roid Studio 的 asset 文件夹