【问题标题】:New to libgdx; glitchy graphic when drawing scene with scene2Dlibgdx 的新手;使用scene2D绘制场景时出现故障图形
【发布时间】:2015-04-10 08:42:31
【问题描述】:

我正在尝试使用 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 函数。如果我不运行它,整个屏幕会变得超级故障,但是我可以看到 New Game 文字。

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);
}
}

【问题讨论】:

    标签: libgdx scene2d


    【解决方案1】:

    你用吗?

    setBounds(x, y, w, h);

    添加舞台之前例如:

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

    也许他可以帮助你。

    【讨论】:

      【解决方案2】:

      我现在觉得自己很愚蠢。在FontLoader 实现中,我将FreeTypeFontParameter 颜色设置为Color.BLACK。显然它覆盖了来自LabelStyleColor.WHITE 参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-24
        • 2019-04-18
        • 2018-10-14
        • 2020-08-17
        • 2023-02-07
        • 2016-03-17
        • 2021-05-30
        • 2012-11-29
        相关资源
        最近更新 更多