1

您好,我尝试显示特殊字符“äöü”。我使用 I18NBundle 来存储字符串。但是问题不应该在这里,因为如果我将它打印到控制台

System.out.println(bundle.get(key));

它确实显示“äöü”。

如果我尝试从 LabelStyle 中取出字形:

    BitmapFont.Glyph glyph = labelStyle.font.getData().getGlyph('ö');
    Gdx.app.log(String.valueOf(glyph.id), glyph.toString());

我得到一个 NullPointerException。

我确实从 Hiero-4 获得了我的 BitmapFont,并将 png 打包到 TexturePacker 中。

TextureAtlas background = manager.get(Const.BACKGROUNDS_PATH);
skin_bg = new Skin(Gdx.files.internal(Const.BACKGROUNDS_STYLE_PATH), background);

"com.badlogic.gdx.graphics.g2d.BitmapFont": {
    "arial": { "file": "images/arial.fnt" }
}

编辑:我检查了 lwjgl 版本:2.9.2 它不应该是因为这个库。错误在 2.9.1 之后

如何测试 BitMapFont 是否可以显示特殊字符

4

1 回答 1

0
"com.badlogic.gdx.graphics.g2d.BitmapFont": {
    "arial": { "file": "images/arial.fnt" }
}

这只是使字体在皮肤上可用,您需要将其添加到实际样式中,以便使用它:

com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
    default: { font: arial, fontColor: white }
}
于 2015-10-11T16:52:25.873 回答