根据这个libgdx wiki页面https://github.com/libgdx/libgdx/wiki/Managing-your-assets在应用程序暂停后需要重新加载像Textures这样的OpenGL资源。
以下是我管理libgdx应用资产的方法
我在使用assetManager时显示splashScreen时使用assetManager加载所有资源我需要使用assetManager.get()
以下是我的代码:
public class GameMain extends Game {
private AssetManager manager;
@Override
public void create() {
manager = new AssetManager();
setScreen(new splashScreen(this));
}
@Override
public void render() {
super.render();
}
@Override
public void pause() {
super.pause();
}
@Override
public void resume() {
super.resume();
}
@Override
public void resize(int width, int height) {
super.resize(width, height);
}
@Override
public void dispose() {
super.dispose();
manager.dispose();
}
public AssetManager getAssetManager() {
return manager;
}
}
闪屏:
public class SplashScreen implements Screen {
GameMain gameMain;
public SplashScreen(GameMain gameMain) {
this.gameMain = gameMain;
}
@Override
public void show() {
loadAssets();
}
public void loadAssets() {
gameMain.getAssetManager().load("example.atlas", TextureAtlas.class);
gameMain.getAssetManager().finishloading();
}
}
我的问题:
我应该在每个manager.update()
中致电Screen.resume()
吗?
答案 0 :(得分:1)
您的实施没问题,除非您异步加载资产,否则不需要manager.update()。在这种情况下,您已经加载了资产。但始终使用get参数访问您的资产。
如果你将纹理放在onPause或onStop方法上,你应该重新加载它们。