libgdx新手;使用场景2D绘制场景时出现故障的图形



我正试图使用scene2D为菜单UI显示一个简单的文本,但由于某种原因,这里没有显示任何内容。屏幕显示纯黑色。

public class ScreenMenu implements Screen {
MyGame myGame;
SpriteBatch batch;
Stage stage;
Label labelNewGame, labelContinue, labelCredits;
public ScreenMenu(MyGame myGame) {
    this.myGame = myGame;
}
@Override
public void show() {
    init();
    BitmapFont font = initFont();
    initLabels(font);
    initStage();
}
private void init() {
    batch = new SpriteBatch();
}
private BitmapFont initFont() {
    return new FontLoader().getMichroma();
}
private void initLabels(BitmapFont font) {
    Label.LabelStyle labelStyle = new Label.LabelStyle(font, Color.WHITE);
    labelNewGame = new Label("New Game", labelStyle);
    labelContinue = new Label("Continue", labelStyle);
    labelCredits = new Label("Credits", labelStyle);
}
private void initStage() {
    stage = new Stage(new ScreenViewport());
    Gdx.input.setInputProcessor(stage);
    stage.addActor(labelNewGame);
}
@Override
public void render(float delta) {
    GlHelper.clearScreen();
    stage.act(delta);
    stage.draw();
}
@Override
public void resize(int width, int height) {
    stage.getViewport().update(width, height, true);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
    dispose();
}
@Override
public void dispose() {
    myGame.dispose();
    batch.dispose();
    stage.dispose();
}
}

以下类包含clearScreen函数。如果我不运行它,整个屏幕就会出现超级故障,我可以看到新游戏文本。

public class GlHelper {
public static void clearScreen() {
    Gdx.gl.glClearColor(0, 0, 0, 0);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
}
public static void clearScreen(float red, float green, float blue, float alpha) {
    Gdx.gl.glClearColor(red, green, blue, alpha);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
}
}

您使用吗?

setBounds(x,y,w,h);

之前添加阶段,例如:

labelNewGame.setBounds(0, 0, 100, 100);

也许他能帮你。

我现在觉得自己很笨。在FontLoader实现中,我将FreeTypeFontParameter颜色设置为Color.BLACK。显然,它覆盖了LabelStyle中的Color.WHITE论点。

最新更新