Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未加载AssetManager libgdx资产_Java_Android_Libgdx - Fatal编程技术网

Java 未加载AssetManager libgdx资产

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

我在libgdx中的AssetManager有问题,我在我的主类中创建它,并且有一个getMethod将AssetManager返回到我的屏幕。当我转到assetManager.get(等)进入我的screens类时,它会说

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()internallyChange
assetManager.update()
assetManager.finishLoading()
@Marius does assetManager.finishLoading()返回true或false,使其在加载所有资产之前将屏幕从启动切换到主菜单?finishLoading块直到加载所有资产,因此它在内部使用update()。我的目标是在加载所有资产之前显示启动屏幕,然后切换到主屏幕。我该怎么做呢?我的目标是让启动屏幕显示,直到所有资产都加载完毕,然后切换到我的主屏幕。我该怎么做呢?