繁体   English   中英

上课时,不会画出我的新舞台[重复]

[英]When class is called, it won't draw my new stage [duplicate]

这个问题已经在这里有了答案:

我一直在为自己的游戏添加自己的自定义字体时遇到麻烦,并且想知道为什么libgdx不喜欢在我的班级被调用后绘制新的舞台?

每当一个项目与另一个项目相交时,就会调用该类,并且主类会调用该类的.render()方法。 我希望它在屏幕上绘制字符串“游戏结束”,但是我在stage.act(delta)遇到错误:

Exception in thread "LWJGL Application" java.lang.NullPointerException
    at com.mygdx.game.GameOverScreen.render(GameOverScreen.java:70)
    at com.mygdx.game.MyGdxGame.render(MyGdxGame.java:191)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:214)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)

这是我的代码:

class GameOverScreen implements Screen {
    Label gameoverstring;

    private Stage stage;
    SpriteBatch spritebatch;

    BitmapFont white;
    LabelStyle headingStyle;

    @Override
    public void show() {
        stage = new Stage();
        white = new BitmapFont(Gdx.files.internal("new.fnt"), false);
        headingStyle = new LabelStyle(white, Color.WHITE);

        gameoverstring = new Label("game ovaaaa!", headingStyle);
        gameoverstring.setFontScale(3);
        stage.addActor(gameoverstring);
    }

    @Override
    public void render(float delta) {
        //gameoverstring.setPosition(0, 0);
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        stage.act(delta);
        stage.draw();
    }

    @Override
    public void resize(int width, int height) {
    }

    @Override
    public void pause() {
    }

    @Override
    public void resume() {
    }

    @Override
    public void hide() {
    }

    @Override
    public void dispose() {
    }
}

第70行(在您的render方法中)为空。 请参阅什么是NullPointerException,以及如何解决它? 对于某些背景。

我怀疑您的问题是render stage为空。 可能是因为您的show方法尚未被调用。

暂无
暂无

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

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