如何使用 textureregion 在 libgdx 中设置图像

How can I set an image in libgdx with a textureregion

我刚刚开始在我的应用程序中使用 TexturePackerTextureAtlasTextureRegions

我目前有一张 class 卡片,它扩展了 Image,我希望能够将卡片上的图形设置为我的地图集中的图形。

当我创建卡片时我可以很好地做到这一点,因为 Image 的众多构造函数之一是 Image(TextureRegion textureRegion)

但是,我的卡在游戏过程中需要改变图形,我也需要能够从图集中设置它。

我目前只能通过设置 Drawable 来找到改变 Image 的方法。

这是唯一的方法吗,因为有一个构造函数可以使用 TextureRegion 设置图形,我觉得很奇怪我不能用 setter 方法做同样的事情?

如果没有,我该怎么办?我可以将 TextureRegion 转换为 Drawable 吗?我是否应该将其缓存在某处以保存每次将 TextureRegion 处理成 Drawable 的过程?我正在使用 AssetManager 来给我 TextureAtlas,所以我假设只有一个 TextureAtlas 实例,但如果我一直不得不转换 TextureAtlas,那将不成立=19=]变成了Drawable会吗?我必须自己缓存这个,不是吗?

有一种简单的方法可以通过创建 TextureRegionDrawable 对象将 TextureRegion 转换为 Drawable(顺便说一下接口):

    TextureRegion region = ...

    drawable = new TextureRegionDrawable(region);

对我来说更合理的似乎是创建两个图像并使用

在它们之间切换
    image.setVisible(isVisible);

如果您需要一直将纹理从一个更改为另一个,您应该考虑使用 Animation 对象来实现此目的