Libgdx - 使用TextureAtlas和Skin。记忆考虑?

时间:2013-09-21 13:01:16

标签: memory libgdx assets texture-atlas

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

我刚刚经历了Skin课,我遇到了这个例子:

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

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

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

1 个答案:

答案 0 :(得分:1)

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