|
沙发

楼主 |
发表于 2020-11-29 10:44:32
|
只看该作者
游戏如何使用字库
游戏中使用字库包括三个方面:配置字库、字库文件、显示时使用字库。
配置字库
<kingdom-src>\data\hardwired\fonts.cfg指示了游戏如何配置字库。
游戏显示时会检查每个要显示字符的UNICODE码,根据码值搜字库。[font]下的codepoints指示了UNICODE属于它当中码值时推荐使用name对应字库。- [font]
- name="Andagii.ttf"
- codepoints="32,183,66640-66687"
- [/font]
复制代码 它指示了当要显示的码值是(32-32)、(183-183)、(66640-66687)时推荐使用Andagii.ttf。
为什么要加上“推荐”?因为不同字库文件可以存在相同的codepoints。- [font]
- name="DejaVuSans.ttf"
- codepoints="32-126,160-745,......"
- [/font]
复制代码 它指示了码值是32时推荐使用DejaVuSans.ttf。如此一来要显示码值是32字符时就发生了字库冲突,程序是依据[fonts]下的order值来处理冲突。- order=_ "DejaVuSans.ttf,Andagii.ttf,wqy-zenhei.ttc"
复制代码 order指示发生冲突时使用优先级,根据此个order值会判断出,要显示码值是32的字符时使用DejaVuSans.ttf。
如果要显示字符不属于任何一个字库的codepoints,那它使用字库分两种情况:
1、它是第一个字符,使用order中的第一个字库。
2、它不是第一个字符,使用前一个字符的字库。
汉字:19968(0x4E00)---408690(0x9FA5),当前全部使用wqy-zenhei.ttc。
字库文件
<kingdom-src>/fonts存放着字库文件,像wqy-zenhei.ttc。
显示时使用字库
游戏显示时会检查每个要显示字符的UNICODE码,根据UNICODE码值找到相应字库,然后使用该字库去渲染。 |
|