【发布时间】:2015-12-03 21:44:05
【问题描述】:
我愿意充分利用 Libgdx 中的 AssetManager 及其所有加载器。 但是我很难理解 Skin 和 TextureAtlas 之间的这种特殊联系。
我想尽可能使用 JSON 的方式来创建皮肤。
在 wiki 我可以读到这个:
请注意,JSON 不描述纹理区域、九块分割或来自纹理图集的其他信息
在 SkinLoader 页面中,我读到了这个:
用于皮肤实例的 AssetLoader。 (1)所有 Texture 和 BitmapFont 实例将作为依赖项加载。传递 SkinLoader.SkinParameter 允许指定与皮肤关联的纹理的(2)确切名称。否则,就像调用 (3)Skin.Skin(com.badlogic.gdx.files.FileHandle) 一样查找皮肤纹理。 SkinLoader.SkinParameter 还允许设置命名资源,这些资源将在加载 json 文件之前添加到皮肤中,这意味着可以从 json 文件本身内部引用它们。这对于动态资源很有用,例如通过 FreeTypeFontGenerator 生成的 BitmapFont。
这就是我读到这篇文章时的想法。
(1) 所有纹理。他们使用复数,所以我猜他们是在提到我可能需要按钮的纹理(作为可绘制对象)。
(2) 纹理的确切名称。所以现在,也许他们在谈论TextureAtlas,因为SkinParameter只有两个字段resources和textureAtlasPath。
(3) 这似乎证实了(2)
所以如果我理解的话,如果我想使用这种方法来加载我的皮肤,我必须使用 TexturePacker 和 TextureAtlas。
您能否确认我理解正确并且没有办法初始化将在我的皮肤中使用的纹理而不使用 TextureAtlas 但使用简单的 png 文件?
如果使用 TexturePacker 创建我的包文件,显然当我对我的一个纹理进行修改时,我将不得不重新打包所有内容,对吧?
【问题讨论】:
标签: libgdx textures skin texturepacker