Loading Screen Libgdx Assetmanager

夙愿已清 提交于 2019-12-12 04:42:06

问题


Trying to create a loading screen, I have a Assets class and a LoadingScreen class which is called immediately from:

this.setScreen(new LoadingScreen(this));

At loading screen I have this:

public class LoadingScreen implements Screen{
    final Game1 game;
    Sprite LdScreen;
    OrthographicCamera camera;

    public LoadingScreen(Game1 gam){
        game=gam;

        camera = new OrthographicCamera();
        camera.setToOrtho(false, 1920, 1080);

    }

    public void show() {
        Texture LdscreenTexture = new Texture(Gdx.files.internal("data/Background.png"));
        LdScreen =  new Sprite (LdscreenTexture);
        Assets.manager.finishLoading();
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        camera.update();
        game.batch.setProjectionMatrix(camera.combined);
        game.batch.begin();
        game.batch.draw(LdScreen, 0,0);
        game.batch.end();
        Assets.manager.update();
        if(Assets.manager.update() == true){
            game.setScreen(new MainMenuScreen(game));
        }
}

But it always returns and error, as though it tries to move to MainMenuScreen class and the asset isn't loaded, which it should be if Assets.manager.update() is true right? Why is this a problem?


回答1:


this simple example

.//Add in your Class Game1

Variable Class

private AssetManager yourAssetManager;

Created Method

yourAssetManager = new AssetManager();

Get Set Method

public AssetManger getManger(){
 return this.yourAssetManager;
}

.

public class LoadingScreen implements Screen{
final Game1 game;
Sprite LdScreen;
OrthographicCamera camera;
AssetManager yourAssetManager;

public LoadingScreen(Game1 gam){
    game=gam;
    this.yourAssetManager = game.getManager();

    camera = new OrthographicCamera();
    camera.setToOrtho(false, 1920, 1080);

}

public void show() {

Use yourAssetManager.load(.... for load asset

     yourAssetManager.load("data/Background.png", Texture.class);

    Texture LdscreenTexture = new Texture(Gdx.files.internal("data/Background.png"));
    LdScreen =  new Sprite (LdscreenTexture);
    //Assets.manager.finishLoading();
}

@Override
    public void render(float delta) {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        camera.update();
        game.batch.setProjectionMatrix(camera.combined);
        game.batch.begin();
        game.batch.draw(LdScreen, 0,0);
        game.batch.end();
        //Assets.manager.update();
        if(yourAssetManger.update()){
            game.setScreen(new MainMenuScreen(game));
        }
}

read this link https://github.com/libgdx/libgdx/wiki/Managing-your-assets i,m not right now test sorry.



来源:https://stackoverflow.com/questions/27462904/loading-screen-libgdx-assetmanager

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!