之前完成作业碰到了不少的字库定义文件,也有过这方面的考虑,汇报一下自己的想法,但愿有所裨益。
) i# V Q1 U/ Z0 f0 U9 apart2的字库定义基本分两类7 ]$ y, z0 h8 e* V( x% L
一是字符集中型,就是第一行定义第一个字符的所有信息,第二行定义下一个的,比如Magic Encyclopedia 3 Illusions:- char id=32 x=0 y=0 width=1 height=0 xoffset=0 yoffset=30 xadvance=7 page=0 chnl=0
- char id=33 x=427 y=93 width=5 height=22 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
复制代码 二是属性集中型,就是第一行先把所有字符的某一个属性比如字符编码定义完,下一行定义所有字符的另一个属性如宽度,如popcap framework的定义方法:- Define CharList
- ('%', '(',);
- Define WidthList
- (7, 27,);
复制代码 另外一种分类方式是编码方式,基本上有两类,一个是十六进制类,一个是明码类(多为utf-8)
* Y, Z* a ` B
2 v" K9 V3 n0 [$ x我的想法是让玩家输入脚本,类似下面一段:- char id=&N x=&X y=&Y width=&W height=&H
复制代码
. O0 H" c$ h) L! a. r* b程序读到&时,看到后面一个是N,就填入字符编码,看到是W,就填入宽度,这比使用编译原理来得简单,不知可不可行。 |