Java 未加载AssetManager libgdx资产
我在libgdx中的AssetManager有问题,我在我的主类中创建它,并且有一个getMethod将AssetManager返回到我的屏幕。当我转到assetManager.get(等)进入我的screens类时,它会说Java 未加载AssetManager libgdx资产,java,android,libgdx,Java,Android,Libgdx,我在libgdx中的AssetManager有问题,我在我的主类中创建它,并且有一个getMethod将AssetManager返回到我的屏幕。当我转到assetManager.get(等)进入我的screens类时,它会说 FATAL EXCEPTION: GLThread 563 Process: com.johnny.gamerpg, PID: 9855 com.badlogic.gdx.utils.GdxRuntim
FATAL EXCEPTION: GLThread 563
Process: com.johnny.gamerpg, PID: 9855
com.badlogic.gdx.utils.GdxRuntimeException:
Asset not loaded: data/backgrounds/mainMenu.png
这是我在主类中的create()
public void create()
{
batch = new SpriteBatch();
assetManager = new AssetManager();
assetManager.load("data/backgrounds/mainMenu.png", Texture.class);
startTime = TimeUtils.millis();
this.setScreen(new Splash(this));
if(assetManager.update() && TimeUtils.timeSinceMillis(startTime) > 3000)
{
setMainMenuScreen();
}
}
这是我的主菜单类构造函数
public MainMenu(GameControl gam)
{
this.game = gam;
assetManager = gam.getAssestManager();
background = assetManager.get("data/backgrounds/mainMenu.png", Texture.class);
}
setMainMenuScreen()
你曾经进入过菜单屏幕吗?在完成assetmanager加载和3000毫秒之前,切换到Splash()。甚至在你检查这些之前 在加载资产之前,assetManager.update()将返回false。assetManager.update()将在每一帧被调用,直到它返回true为止。这意味着您应该检查
if(assetManager.update()){
//done loading
}
在渲染()中
你应该从搬家开始
if(assetManager.update() && TimeUtils.timeSinceMillis(startTime) > 3000)
{
setMainMenuScreen();
}
进入render()并重新思考切换到启动屏幕的方式和时间。您曾经进入过菜单屏幕吗?在完成assetmanager加载和3000毫秒之前,切换到Splash()。甚至在你检查这些之前 在加载资产之前,assetManager.update()将返回false。assetManager.update()将在每一帧被调用,直到它返回true为止。这意味着您应该检查
if(assetManager.update()){
//done loading
}
在渲染()中
你应该从搬家开始
if(assetManager.update() && TimeUtils.timeSinceMillis(startTime) > 3000)
{
setMainMenuScreen();
}
进入render()并重新考虑切换到启动屏幕的方式和时间。将
assetManager.update()
更改为assetManager.finishLoading()
@Marius does assetManager.finishLoading()返回true或false,使其在加载所有资产时从启动屏幕切换到主菜单?finishLoading阻塞直到加载所有资产,因此它使用update()internallyChangeassetManager.update()
到assetManager.finishLoading()
@Marius does assetManager.finishLoading()返回true或false,使其在加载所有资产之前将屏幕从启动切换到主菜单?finishLoading块直到加载所有资产,因此它在内部使用update()。我的目标是在加载所有资产之前显示启动屏幕,然后切换到主屏幕。我该怎么做呢?我的目标是让启动屏幕显示,直到所有资产都加载完毕,然后切换到我的主屏幕。我该怎么做呢?