在LIBGDX文档中,“必须放置TextureAtlas来释放后备纹理所消耗的资源。”
LIBGDX Wiki的最后一行说:“ TextureAtlas保留所有页面纹理。处理TextureAtlas将处理所有页面纹理。”
那么我什么时候应该处置一个本地TextureAtlas,使其其他类使用它的纹理呢?
public class loader(String region) {
public TextureRegion TextureLoader() {
TextureAtlas atlas = new TextureAtlas("zzz.pack");
TextureRegion textureRegion = atlas.findRegion(region);
//atlas.dispose();//if I uncomment this line, no texture will be drawn, just a blank black area instead of the loaded textureRegion
return ;
}
}
public class player() {
public player() {
TextureRegion textureRegion = loader(region);
//draw textureRegion
}
}
最佳答案
您可以在不再需要它时进行处理。但这取决于本地图集中的纹理。
可能是当您退出游戏并返回主菜单时。在这种情况下,可以放置具有所有游戏相关纹理的纹理地图集。
如果游戏的每个关卡都有一个纹理图集,因为各个关卡的外观不同,则可以在切换关卡时将其丢弃。
但是,在大多数情况下,您可能只会在玩家完全退出游戏时才处理地图集。您应该使用AssetManager
加载地图集,并且在游戏退出时处置资产管理器始终是一个好主意。这将处置仍在加载的所有资产,并将清理所有内容。