
这种字体是我所在游戏项目“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 这样的字体编码是公开的),但我们仍然希望感谢那些创造这一字体以及支持它发展的人们。






