LibGDX标签绘制黑色背景的字母

时间:2015-07-15 20:15:11

标签: java libgdx

我最近开始开发LibGDX应用程序,目前正在开发GUI。但是,我遇到了与Scene2D中的标签有关的问题。 下面的图片应该说千言万语:

Image of the issue

正如您所看到的,“分数”这个词是'显示,但它具有每个字符的黑色背景,与背后的黑色背景不一致。

标签本身包含在浅灰色表格中,该表格位于另一个包含上部元素的表格中。该表位于主表中。

最初,我认为背景与GLClearColor相关,但是从测试开始,我发现它不是 - 红色GLClearColor仍然会产生黑色背景。此外,我已检查表的颜色包含alpha值1,我尝试更改字体,更改字体颜色以及缩放。我现在已经没想完了。

以下是与标签相关的代码摘录:

private Label score;

score = new Label("Score:", skin);
score.setFontScale(3);

然后将标签添加到' scoreTable':

scoreTable.add(score).expand().fill();
scoreTable.pack();

皮肤的定义如下uiskin.json':

// @formatter:off
{
    com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: homestile.fnt } },
    com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
        default: { down: default-round-down, up: default-round, font: default-font},
    },
    com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
        default:  {
            titleFont: default-font
        }
    },
    "com.badlogic.gdx.graphics.Color": {
        "white": { "r": 1, "g": 1, "b": 1, "a": 1},
        "black": { "r": 0, "g": 0, "b": 0, "a": 1},
    },
    com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
        default: { font: default-font, fontColor: white }
    }
}

任何人都可以对这个问题有所了解吗?

编辑:以下是字体文件:

http://i.stack.imgur.com/xDmL1.png (请注意,这是一种白色字体,所以当有白色背景时查看它会使它看起来不可见。相信我,它就在那里)

https://drive.google.com/file/d/0B9Xrus17wYbNUXlOVHFKX2YybjQ/view?usp=sharing

1 个答案:

答案 0 :(得分:0)

搜索' blend'在代码中,我找到了答案。它似乎在代码中的其他地方,我称之为:

batch.enableBlending();
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glEnable(GL20.GL_BLEND);
batch.draw(texture,this.getX(),getY());
Gdx.gl.glDisable(GL20.GL_BLEND);
batch.disableBlending();

删除这些行(即Gdx.gl.glDisable(GL20.GL_BLEND);)后,问题就解决了,文本呈现正确。我假设该阶段默认启用它,但它似乎依赖于LibGDX中GL_BLEND的初始状态。经验教训。