2

我正在使用TextureAtlas为 Libgdx 中的游戏加载我的资产。我知道TextureAtlas的方法findRegion很昂贵,内存方面,所以它应该加载一次并存储。

我刚刚通过Skin我遇到这个例子的课程:

TextureAtlas atlas = ...
Skin skin = new Skin();
skin.addRegions(atlas);
...
TextureRegion hero = skin.get("hero", TextureRegion.class);

这意味着我也可以使用 Skin 来获得我的纹理。我的问题是,皮肤类如何加载这些资产。它会加载所有内容skin.addRegions(atlas);吗?还是 skin.get("hero", TextureRegion.class);在每次调用时从 TextureAtlas 加载它,使其与atlas.findRegion("hero")调用一样昂贵?

我希望在游戏开始时从 TextureAtlas 加载我的所有资产。所以我在想我可以在皮肤中做一个简单的加载,然后从那里使用我的资产吗?

4

1 回答 1

1

从源代码看来,添加到 的区域Skin存储Array在 0.9.8 中并通过字符串比较找到,就像它们在TextureAtlas. 查找时间将相似。

于 2013-09-21T21:57:18.343 回答