我的LibGDX游戏需要5-10秒才能加载,因为create()方法必须做很多事情,加载图像并创建游戏中使用的对象。在这段时间里,我只需要在屏幕上显示一些简单的文本,比如“正在加载...”这样人们就知道这个游戏是有效的,但只是要有耐心。我正在使用LibGDX来制作我的游戏,当然,如果这不是最简单的方法,那么解决方案不必是使用LibGDX方法,它只需要工作即可。
如果有人能告诉我一个非常简单的方法,或者是非常彻底的,我将非常感激。我没有编码经验,也不理解人们所说的我在研究过程中发现的所有方法,所以请尽可能保持解决方案的简单。
发布于 2017-09-17 15:03:03
使用AssetManager并异步加载您的资产。
下面是如何实现它的一般结构。
private boolean loadComplete;
private AssetManager assetManager;
@Override
public void create(){
//...
assetManager = new AssetManager();
assetManager.load(/*whatever*/);
assetManager.load(/*whatever*/);
assetManager.load(/*whatever*/);
loadComplete = false;
}
private void onAssetsLoaded(){
loadComplete = true;
//abc = assetManager.get(...);
//and so on
// You can switch to any Screen
}
@Override
public void render(){
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//load one asset at a time per frame until loading is complete
if (!assetManager.update()){
//maybe draw a loading screen or you can leave the screen blank.
return;
}
//get references to its assets or switch to other screen.
if (!loadComplete)
onAssetsLoaded();
}
@Override
public void dispose(){
assetManager.dispose();
}https://stackoverflow.com/questions/46261194
复制相似问题