【问题标题】:libgdx with displaying Cyrillic显示西里尔字母的 libgdx
【发布时间】:2014-07-24 12:37:43
【问题描述】:

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

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

【问题讨论】:

    标签: java encoding libgdx


    【解决方案1】:

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

    这就是为什么您必须在 BitmapFont 中手动提供西里尔字符才能显示它们。 用于从 .ttf-Asset 生成 BitmapFonts 的相对较新的 libgdx 扩展也可以生成西里尔字符,如果您定义它们: 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 我希望这有帮助! 干杯

    【讨论】:

    • 感谢@TheWhiteLlama 的回复很有帮助。没有给我正确的解决方案,而是给了我好的想法。问题出在字体上。至少目前无法生成喷泉。这是一个示例:FreeTypeFontGenerator generator = new FreeTypeFontGenerator (Gdx.files.internal ("font/ciril1.ttf")); BitmapFont font15 = generator.generateFont (11); 它给了我错误:线程“LWJGL 应用程序”中的异常 com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoSuchMethodError: com.badlogic.gdx.graphics.g2d.TextureAtlas.getRegions ( ) Ljava/util/List;
    • 我成功了:BitmapFont font = new BitmapFont (Gdx.files.internal ("font / font.fnt"), Gdx.files.internal ("font / font.png"), false); font.scale (-0.5f);
    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 2013-08-13
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多