Terrarum Sans Bitmap 示例图

这种字体是我所在游戏项目“Terrarum”中使用的位图字体(因此得名)。该字体能够支持超过 90%的欧洲语言,同时也能兼容中文、日语和韩语。

该字体有以下几种格式可供选择:

  • OTF 格式——这很可能是你最想要的格式。只要支持 OpenType 字体的设备,都能正常使用这种格式。
  • WOFF2 格式——这其实是将 OTF 字体重新打包而成的网页字体格式。如果你想在网页上使用这种字体,那肯定需要它。
  • JAR 版本——如果你使用 LibGDX 进行开发,那么这就是你需要的版本。(继承自 BitmapFont 类)

反馈页面已开放。如果您有任何问题或疑问,请在页面上留言。

注释与限制

  • JAR 版本自带独立的排版和字型引擎、纹理缓存以及独立的资源。它与 GlyphLayout 不兼容。
  • (仅限 JAR) 显示波斯语/塞尔维亚语的西里尔字母变体,需要使用特殊的控制字符。 ( GameFontBase.charsetOverrideBulgarian — U+FFFC1; GameFontBase.charsetOverrideSerbian — U+FFFC2)
  • 所有的汉字都采用中国大陆的拼音形式。除非有人愿意负责这些字的绘制工作,否则不打算支持其他拼音形式。
  • 在印度文字中,只有天城文和泰米尔文完全支持连字功能(至少据我所知是这样)。孟加拉文则完全不支持连字功能。

设计目标

  • 无衬线字体
  • 识别部分手写表格内容
    • 结合无衬线字体风格,这就意味着不会过度简化设计。
  • 为节省空间而采用大写字母缩写形式

可在您的 LibGDX 项目中使用

  • 首先,将.jar 文件添加到你的库路径中,然后:

在你的代码中(Kotlin):

import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap

class YourGame : Game() {

    lateinit var fontGame: Font

    override fun create() {
        fontGame = TerrarumSansBitmap(...)
        ...
    }
    
    override fun render() {
        batch.begin()
        ...
        fontGame.draw(batch, text, ...)
        ...
        batch.end()
    }
}

在你的代码中(使用 Java 语言编写):

import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap;

class YourGame extends BasicGame {

    Font fontGame;

    @Override void create() {
        fontGame = new TerrarumSansBitmap(...);
        ...
    }
    
    @Override void render() {
        batch.begin();
        ...
        fontGame.draw(batch, text, ...);
        ...
        batch.end();
    }
}

如何使用颜色代码

颜色代码其实都是单独的 Unicode 字符。虽然你可以直接将那些字符复制到代码中,但这显然不是理想的做法。幸运的是,我们还提供了用于处理这些颜色代码的实用函数。

GameFontBase.toColorCode(argb4444: Int) -- returns String
GameFontBase.toColorCode(r: Int, g: Int, b: Int) -- returns String
GameFontBase.toColorCode(r: Int, g: Int, b: Int, a: Int) -- returns String

argb4444 接收的是完整的 ARGB 数值(按上述顺序),即数值范围从 0x0000 到 0xFFFF。 r, g, b(, a) 则分别接收 RGB 和 A 的值,其范围均为 0x0 到 0xF。任何超出此范围的数值都不会被校验,可能会引发各种问题,因此请务必小心。

U+100000 这个代码用于取消之前应用的色彩设置,使颜色恢复为原始状态。不过,看起来就像所有的 ARGB 值都为零一样。

致谢

感谢/r/Typography 板块中的热心人士提供了如此出色的反馈意见。

CJK 文字字形由 WenQuanYi 字体提供支持。该字体遵循 GNU GPL 版本 2 的许可协议进行分发。虽然字体的形状本身并不受版权保护(比如 TTF 这样的字体编码是公开的),但我们仍然希望感谢那些创造这一字体以及支持它发展的人们。

相关推荐