我在使用libgdx显示西里尔字母时遇到以下问题。
我举一个例子:

这有效:

System.out.println("абцдеф");

但它什么也没显示:
field = new TextField("абцдеф", style);

并尝试没有成功。
try {
    mmm = new String(t.getBytes(), "UTF-8");
} catch (UnsupportedEncodingException e) {
    // Will it ever be thrown?
}
field = new TextField(mmm, style);

如果有人解决方案,我将非常高兴,很多人将不胜感激。

最佳答案

我认为可能缺少一些其他信息。 Aslong libgdx使用Bitmap字体显示所有类型的文本。 (我认为TextField是scene2dui的一部分)
默认的Bitmap-Generation/Default-libgdx-font可能仅包含ASCII码字符和一些其他字符,但没有西里尔字母。

这就是为什么您还必须在BitmapFont中手动提供西里尔字符才能显示它们。
如果定义了西里尔字符,则相对较新的libgdx扩展名可以从.ttf-Asset中生成BitmapFonts:
TrueType Fonts in libGDX

然后,您还可以在游戏/应用中使用它们,只要您还为TextField/scene2dui样式定义了新生成的字体:
Libgdx Scene2d - Set actor ( TextField ) padding?

这也是libgdx-repo中的一些测试。如果有误会,请看一下那里:https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/extensions/InternationalFontsTest.java
我希望这有帮助!
干杯

关于java - libgdx显示西里尔字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24933903/

10-13 09:14