Java 调用类时,它将赢得';不要画我的新舞台

Java 调用类时,它将赢得';不要画我的新舞台,java,android,libgdx,Java,Android,Libgdx,我在游戏中添加自己的自定义字体时遇到了问题,我想知道为什么libgdx不喜欢在调用类后绘制我设置的新阶段 每当一个项与另一个项相交,并且主类调用该类的.render()方法时,就会调用该类。我希望它将字符串“游戏结束”拖到屏幕上,但是我在阶段遇到错误。act(delta): 这是我的密码: class GameOverScreen implements Screen { Label gameoverstring; private Stage stage; SpriteB

我在游戏中添加自己的自定义字体时遇到了问题,我想知道为什么libgdx不喜欢在调用类后绘制我设置的新阶段

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

这是我的密码:

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
方法中)的某些内容为空。有关背景信息,请参阅


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

任何时候“出现错误”,您都需要向我们显示错误消息。
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() {
    }
}