SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5833|回复: 1
打印 上一主题 下一主题

[MOD] 替换字库

[复制链接]

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
跳转到指定楼层
楼主
发表于 2020-11-29 10:43:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
游戏中要用到的所有字库文件都是自带的,没有使用系统字库。字库文件须是UNICODE编码字库。

游戏显示时会检查每个要显示字符的UNICODE码,根据UNICODE码值找到相应字库,然后使用该字库去渲染。默认配置时英文、中文使用的是不同字库,以下要使用的例子用于替换中文字库,若想替换英文、或让英文和中文使用同一字库参考二楼的“游戏如何使用字库”。

游戏默认使用的字库:文泉驿正黑体。该字库对应资源包中文件:<kingdom-res>\fonts\wqy-zenhei.ttc

替换字库步骤I:找到一个你喜欢的字库
对字库要求
  • 按UNICODE编码。现在的字库一般都是按UNICODE编码的,像Win7自带的那些个字库。
  • 既然这里要让显示汉字,该字库得须支持简体中文。

此处你可以使用操作系统自带字库。Win7操作系统自带字库集中被存放在<windows>\Fonts目录,让找到“楷体”字库对应的文件:simkai.ttf。

替换字库步骤II:把喜欢的字库文件复制到<kingdom-res>\fonts,并改名为wqy-zenhei.ttc
默认配置是程序一遇到要显示汉字就用“wqy-zenhei.ttc”字库,这里不改文件名就可不去改配置了。

使用“楷体”后的界面。注:英文和数字没有跟着变,因为在配置中英文和数字不使用“wqy-zenhei.ttc”
回复

使用道具 举报

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
沙发
 楼主| 发表于 2020-11-29 10:44:32 | 只看该作者

游戏如何使用字库

游戏中使用字库包括三个方面:配置字库、字库文件、显示时使用字库。

配置字库
<kingdom-src>\data\hardwired\fonts.cfg指示了游戏如何配置字库。

游戏显示时会检查每个要显示字符的UNICODE码,根据码值搜字库。[font]下的codepoints指示了UNICODE属于它当中码值时推荐使用name对应字库。
  1. [font]
  2.         name="Andagii.ttf"
  3.         codepoints="32,183,66640-66687"
  4. [/font]
复制代码
它指示了当要显示的码值是(32-32)、(183-183)、(66640-66687)时推荐使用Andagii.ttf。
为什么要加上“推荐”?因为不同字库文件可以存在相同的codepoints。
  1. [font]
  2.         name="DejaVuSans.ttf"
  3.         codepoints="32-126,160-745,......"
  4. [/font]
复制代码
它指示了码值是32时推荐使用DejaVuSans.ttf。如此一来要显示码值是32字符时就发生了字库冲突,程序是依据[fonts]下的order值来处理冲突。
  1. 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码值找到相应字库,然后使用该字库去渲染。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-2 03:42 , Processed in 0.067356 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表