加载屏幕Libgdx Assetmanager [英] Loading Screen Libgdx Assetmanager

查看:178
本文介绍了加载屏幕Libgdx Assetmanager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图建立一个载入画面,我有一个资产类和 LoadingScreen 类,这是从马上打电话

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));
        }
}

但它总是返回和错误,好像它试图移至 MainMenuScreen 类和资产未加载,它应该是,如果 Assets.manager.update()是真的吗?
为什么这是一个问题吗?

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?

推荐答案

这个简单的例子

.//添加在你的类的Game1

.//Add in your Class Game1

变量类别

private AssetManager yourAssetManager;

创建方法

yourAssetManager = new AssetManager();

获取设置方法

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() {

使用yourAssetManager.load(....负载资产

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));
        }
}

阅读此链接 https://github.com/libgdx/libgdx/wiki /管理-您资产 I,M不是现在测试遗憾。

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

这篇关于加载屏幕Libgdx Assetmanager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆