2013-09-21 49 views
2

我正在使用TextureAtlas在Libgdx中加載我的遊戲資源。我知道TextureAtlas的方法findRegion是昂貴的,內存明智的,所以它應該加載一次並存儲。Libgdx - 在皮膚上使用TextureAtlas。記憶考慮?

我正要通過在那裏我遇到了這個例子中,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加載所有我的資產。所以我在想,我可以在皮膚上做一個簡單的加載,然後從那裏使用我的資產?

回答

1

從源代碼看來,添加到Skin的區域存儲在Array中,並且通過字符串比較在0.9.8中找到,就像它們在TextureAtlas中一樣。查找時間將類似。

+1

因此,如果我想在啓動時從TextureAtlas加載所有資產,除了按名稱逐一加載所有內容外,沒有別的選擇嗎? – Jazib