libGDX游戏开发之AssetManager资源管理(十)

libGDX游戏开发之AssetManager资源管理(十)

libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm…国内用libgdx比较少,多数情况需要去官网和google找资料,相互学习的可以加我联系方式。

资源管理适用于

1、异步加载资源,加载时屏幕显示正在加载
2、多个类反复加载同一资源使用
3、一个存储您所有资产的地方

1、加载

写在create或者全局只执行一次的地方

AssetManager manager = new AssetManager();

// 加载
manager.load("data/mytexture.png", Texture.class);
manager.load("data/myfont.fnt", BitmapFont.class);
manager.load("data/mymusic.ogg", Music.class);

// 加载时需要添加参数时:
TextureParameter param = new TextureParameter();
param.minFilter = TextureFilter.Linear;
param.genMipMaps = true;
manager.load("data/mytexture.png", Texture.class, param);

// 也可以使用阻塞等待加载完成
manager.finishLoading();
// 上面的资源加载完成才能继续下一步

渲染中显示加载…

 public void render() {
      if(manager.update()) {
         // 加载完毕,在这里放入进入另一个场景的代码
         game.setScreen(new PlayScreen(game));// 进入玩游戏场景
      }

      // 获取加载进度
      float progress = manager.getProgress()
   }

2、获取

获取使用时:

Texture tex = manager.get("data/mytexture.png", Texture.class);
BitmapFont font = manager.get("data/myfont.fnt", BitmapFont.class);

// 判断是否加载某个资源
if(manager.isLoaded("data/mytexture.png")) {
   Texture tex = manager.get("data/mytexture.png", Texture.class);
}

从管理中卸载:
通过 AssetManager 管理的资产不应手动处理,而是调用 AssetManager.unload()!

manager.unload("data/myfont.fnt");

// 一次性清除所有
manager.clear();

// 处理也能清理所有,使用后manager将不再可用
manager.dispose();
posted @ 2022-09-16 00:08  凌康  阅读(51)  评论(0编辑  收藏  举报