Java Android上的Libgdx文本

Java Android上的Libgdx文本,java,android,libgdx,label,bitmap-fonts,Java,Android,Libgdx,Label,Bitmap Fonts,我是libgdx新手,我正在尝试在屏幕上显示一些文本 我看了几个教程,他们都说我应该启动没有参数的BitmapFont,然后它将使用默认字体。但在我的android设备上,它只显示以下黑色矩形: 这是我的代码: public class GameOverScreen implements Screen { private JumpGame game; private OrthographicCamera cam; private BitmapFont gameOver

我是libgdx新手,我正在尝试在屏幕上显示一些文本

我看了几个教程,他们都说我应该启动没有参数的
BitmapFont
,然后它将使用默认字体。但在我的android设备上,它只显示以下黑色矩形:

这是我的代码:

public class GameOverScreen implements Screen {
    private JumpGame game;
    private OrthographicCamera cam;

    private BitmapFont gameOverFont;
    private Label.LabelStyle labelStyle;
    private Label label;

public GameOverScreen(JumpGame game) {
    this.game = game;
    cam = new OrthographicCamera();

    gameOverFont = new BitmapFont();
    labelStyle = new Label.LabelStyle(gameOverFont, Color.BLACK);
    label = new Label("Game Over", labelStyle);
}

@Override
public void show() {
    cam.setToOrtho(false, game.getWidth() / 4, game.getHeight() / 4);
    game.batch.setProjectionMatrix(cam.combined);
}

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    game.batch.begin();
    label.draw(game.batch, 1);
    game.batch.end();
}

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

}

@Override
public void pause() {

}

@Override
public void resume() {

}

@Override
public void hide() {

}

@Override
public void dispose() {

}
}
编辑:

好的,我用第二个线程的文本启动屏幕。当我“正常”启动它时,它工作正常。有人能解释一下为什么会这样,如果我仍然想从线程启动它,如何解决它吗?

根据

要将数据从另一个线程传递到渲染线程,我们建议 使用Application.postRunnable()。这将在中运行代码 在下一帧的渲染线程中,在 调用ApplicationListener.render()


标签是libgdx的二维场景图的一部分,所以最好与Stage一起使用

如果要绘制字体,只需借助
Batch
进行绘制即可

font.draw(batch,"Hello World",100,100);

它在桌面上工作正常吗?@AbhishekAryan是的,它在桌面上工作。所有UI都必须在主线程上运行。如果您在另一个线程中,请使用Gdx.app.postRunnable()@RóbertGers
game.getWidth()
game.getHeight()
的值是多少,谢谢@Nathan的帮助!