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();