简体   繁体   English

载入画面Libgdx Assetmanager

[英]Loading Screen Libgdx Assetmanager

Trying to create a loading screen, I have a Assets class and a LoadingScreen class which is called immediately from: 尝试创建一个加载屏幕,我有一个Assets类和一个LoadingScreen类,该类立即从以下位置调用:

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? 但是它总是返回并出错,就像它试图移动到MainMenuScreen类并且没有加载资产一样,如果Assets.manager.update()为true,应该是正确的吗? Why is this a problem? 为什么这是个问题?

this simple example 这个简单的例子

.//Add in your Class Game1 .//添加您的班级游戏1

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(....作为负载资产

     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://github.com/libgdx/libgdx/wiki/Managing-your-assets我现在不对不起。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM