当前位置: 首页 > 知识库问答 >
问题:

libGDX,打印非西方字体

赵朝
2023-03-14

我正在完成我的libGDX android游戏,我在本地化方面遇到了问题。

我希望我的游戏在波兰语,英语,阿拉伯语和中文本地化。为此,我使用了运行良好的libgdx I18NBundle。我对前2没有问题,他们打印非常好与我的BitmapFont(我已经通过Hiero)。

我完全不知道如何渲染后2。Hiero似乎不能从非西方字体生成位图,尝试Gdx freetype扩展让我更加困惑(打印西方符号不起作用--另一个字符在哪里显示,当我试图打印中文/阿拉伯文字符时,我得到的只是空白)。

这是问题的第二部分。让我们假设我/我们设法实现了有效的字体呈现。很明显,我需要3种字体(波兰语/英语,中文和阿拉伯语)。我必须以某种方式检测系统的语言,然后加载适当的字体。加载合适的字体似乎不是一个大问题,问题是,我如何检测语言(而不是整个区域设置)。

共有1个答案

乜栋
2023-03-14

>

  • hiero为非西方字体生成位图字体。我为我的游戏生成了几个西里尔字母位图字体。我刚才从这个页面上尝试了几种阿拉伯语字体--都很好用。也许你应该问另一个问题,更详细地描述你与Hiero的问题。

    您可以在AndroidLauncher类中使用方法locale.getdefault().getlanguage()(详细信息见此)在运行时获取设备上的当前语言。

    然后,您应该从本地化中决定您将使用的语言,并将此信息传递给主游戏类。

    protected void onCreate (Bundle savedInstanceState) {
        ...
        String sysLang = Locale.getDefault().getLanguage();
        String i18nLang;
        if ((sysLang == "en") || (sysLang == "de")) {
            i18nLang = "en";
        } else if (...) {...}
    
        initialize(new MyGame(i18nLang), config);
    }
    

  •  类似资料:
    • 问题内容: 我想打印所有可用语言的排序波兰语名称。 不幸的是我对排序部分有疑问。输出为: 不幸的是,波兰语的出现前后,因此输出应为: 我该怎么做?是否存在一种通用的非语言相关的方法(例如,我现在要显示此方法,并使用另一种排序规则以另一种语言进行排序)。 问题答案: 您应该将整理器传递给sort方法: 默认的排序顺序是由字符串中的Unicode代码点定义的,并且在任何语言中都不是正确的字母顺序。

    • 我创造了一个长方形 它具有敌人的坐标和尺寸。在渲染方法中,我希望当按下此矩形时,打印字符串“完成”。我尝试了: 但它在地图上的任何地方都有效,而不仅仅是矩形

    • 我创建了一个简单的SpringBoot应用程序。有两类: 1) ManagedBean类 2) NonmangedBean:它具有ManagedBean类的依赖项 还有第三个服务类,它有Rest结束点。 首先,我调用 /processBeanendpoint,将具体对象的NonmangedBean类和自动连接它。(在这里,我知道bean将生活在Spring Container中,直到我关闭服务器。

    • 问题内容: 我得到的用户输入包括非ASCII字符和不可打印的字符,例如 例如: 所需的输出: 使用Java删除它们的最佳方法是什么? 我尝试了以下操作,但似乎不起作用 输出量 问题答案: 您的要求不清楚。Java 中的所有字符都是Unicode字符,因此,如果将其删除,将留下一个空字符串。我假设您的意思是您要删除任何非ASCII,不可打印的字符。 此处, 代表可打印ASCII字符的POSIX字符类

    • 我正在尝试编写一个程序,它将多个数字和一个基数作为参数,并通过非零数字升序的数字向上计数。例如,在具有3位数字的基数4中,它应该打印: 000 001 002 003 010 011 012 013 020 022 023 030 033 100 101 102 103 110 111 112 113 120 122 123 130 133 200 202 203 220 222 223 230

    • 问题内容: 我使用PHP中的DOM扩展来构建一些HTML文档,并且我希望输出的格式正确(带有新行和缩进),以便从我做过的许多测试中都可以读取: “ formatOutput = true”对saveHTML()完全不起作用,仅对saveXML()起作用 即使我使用saveXML(),它也仅适用于通过DOM创建的元素,而不适用于loadHTML()包含的元素,即使使用“ preserveWhiteS