如何使用 textureregion 在 libgdx 中设置图像
How can I set an image in libgdx with a textureregion
我刚刚开始在我的应用程序中使用 TexturePacker
、TextureAtlas
和 TextureRegions
。
我目前有一张 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 对象来实现此目的
我刚刚开始在我的应用程序中使用 TexturePacker
、TextureAtlas
和 TextureRegions
。
我目前有一张 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 对象来实现此目的