java - 加载屏幕 Libgdx Assetmanager

标签 java android libgdx

尝试创建加载屏幕,我有一个 Assets 类和一个 LoadingScreen 类,该类立即从以下位置调用:

this.setScreen(new LoadingScreen(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 未加载,如果 Assets.manager.update()< 则应该如此 是真的吗? 为什么这是一个问题?

最佳答案

这个简单的例子

.//添加到你的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(.... 加载资源

     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/Managing-your-assets我现在没有测试抱歉。

关于java - 加载屏幕 Libgdx Assetmanager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462904/

相关文章:

android - 如何为动态 key 解析此类 JSON 数据

java - LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)

java - 更新循环更新对象而不是删除它

java - 使用迭代器或 for 循环获取类转换异常

Java 选项的使用

java - Selenium Webdriver - 如何从非典型下拉列表中选择选项

java - LIBGDX And​​roid - 按钮监听器不工作

java - 无法使用 IMAP 连接到 Gmail

android - Kotlin Android Firebase 数据库 Hashmap 转换为类

android - 如何更改 TabHost 中的选项卡图像