我刚开始在我的应用中使用TexturePacker
,TextureAtlas
和TextureRegions
。
我目前有一个名为card的类,它扩展了Image
,我希望能够将卡片上的图形设置为我的地图集。
当我创建卡片时,我可以做到这一点,因为Image
的许多构造函数之一是Image(TextureRegion textureRegion)
。
但是,我的卡需要在游戏过程中更改图形,我需要能够从地图册中设置此图片。
我目前只能通过设置Image
来找到更改Drawable
的方法。
这是唯一的方法,因为有一个使用TextureRegion
设置图形的构造函数,我觉得奇怪的是我不能用setter方法做同样的事情吗?
如果没有,我该怎么办呢?我可以将TextureRegion
转换为Drawable
吗?我是否应该将其缓存到某个地方,以便每次都将TextureRegion
保存到Drawable
?我使用AssetManager
给我TextureAtlas
,所以我假设只有TextureAtlas
的一个实例,但如果我不得不转换,那么它就不会成立将TextureRegion
变为Drawable
吗?我不得不缓存这个我自己赢了吗?
答案 0 :(得分:2)
通过创建TextureRegionDrawable对象,可以通过简单的方法将TextureRegion转换为Drawable(即btw接口):
TextureRegion region = ...
drawable = new TextureRegionDrawable(region);
对我来说更合理似乎只是创建两个图像并使用
在它们之间切换 image.setVisible(isVisible);
如果你需要一直改变纹理,你应该考虑使用Animation对象来实现这个目标