在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加载地图集,并且在游戏退出时处置资产管理器始终是一个好主意。这将处置仍在加载的所有资产,并将清理所有内容。

07-28 13:39