冒险解谜游戏中文网 ChinaAVG
标题:
图片字库定义文件通用制作工具的设计思路
[打印本页]
作者:
shane007
时间:
2010-4-25 15:17
标题:
图片字库定义文件通用制作工具的设计思路
最近,大量的汉化项目都涉及到了图片字库。
" G/ {. L- U/ T- H3 ~. F' K4 d: V
要用图片字库自然离不开编程制作图片字库的定义文件。
p; x, O4 p# O, k7 U; D) N! d
图片字库我们可以用Photoshop来快速制作,请看如下帖子。
p+ O6 A& C2 \2 V
用Photoshop制作图片字库简易教程
. M+ b" q7 Y) Z' p* \; R! D
https://www.chinaavg.com/read.php?tid=22020
& `4 G2 w% Y$ E- d1 D
" U7 x& w: r, V' h& L
那图片字库定义文件是否有什么快捷的办法来生成呢?
8 A5 ?1 N2 p; J7 R7 x
办法都是人想出来的,我想了个如下的办法:
' ?/ h+ Z: R& i C j" a& V
$ F2 N- k" L$ c9 y/ B$ u5 j# I
我们可以发现,虽然图片字库的定义多种多样。
' P" D( T: f$ I0 j# Y0 G4 y5 Q
但是,大致都可以归纳为如下的样子
# D! @3 p% G7 r% c6 T' P
3 ^; i% f" j0 n2 V
1. 头部信息
_ o9 y; A$ Z+ `3 G
记录了图片的高度,宽度,字符数等信息
- z) h, p1 Y) |% F! T
2. 每个字符的位置信息x字符数
$ M9 a3 S+ A! y6 x
0 Q6 z. W, g8 e% E* i0 }
对于第2个部分来说,我们可以设计一个通用工具来生成。
- D# o: O2 Z$ p/ L
下面说说这个通用工具的设计思路。
4 j7 |6 z$ d) E, n+ i) U! b
+ S" s+ z) h/ o' T3 [
我们先输入一些必要的参数,比如字符的高度,宽度,首行字符的上边界及左边界坐标等等。
T2 Z- ?) v* {, {7 w! ?; C
就可以确定每一个字符的范围,这每一个字符都会对应1组参数,比如x,y,,left,top以及UV坐标系的x/width 等等
2 E- ~6 X9 u+ z1 d! [
我们可以预先定义一个字符的位置信息的模版。
4 J6 }* S, X$ c- V3 j. ]
程序会按模版的定义,选取我们需要的参数,按游戏的图片字库定义文件的格式,生成上面的part2.
$ b+ d+ I1 I2 ^& [
那part1我们只要简单地手工修改一下即可。
+ W$ o, A5 Z+ N' }9 F( U- @! D
7 }9 E& V! I& v8 G3 @5 T2 n
有了这样的1个工具的话,我们可以快速地制作出各种类型的图片字库的定义文件。
$ I% c/ r$ H7 ^; F) a7 X5 S
希望各位懂技术的朋友给提提意见,参与讨论。
作者:
rendu2mai
时间:
2010-4-25 22:18
标题:
小小的想法
之前完成作业碰到了不少的字库定义文件,也有过这方面的考虑,汇报一下自己的想法,但愿有所裨益。
: s4 }- N, t) |; u) M
part2的字库定义基本分两类
. I; f8 r+ X% H: v+ ]
一是字符集中型,就是第一行定义第一个字符的所有信息,第二行定义下一个的,比如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)
3 `+ X, k- Y) f* X
0 I) A8 U- Q+ C$ d
我的想法是让玩家输入脚本,类似下面一段:
char id=&N x=&X y=&Y width=&W height=&H
复制代码
+ G* k! h$ H5 g5 c) Y7 ~
程序读到&时,看到后面一个是N,就填入字符编码,看到是W,就填入宽度,这比使用编译原理来得简单,不知可不可行。
作者:
shane007
时间:
2010-4-25 22:25
谢谢楼上rendu2mai 的资料,其实,part2的类型有好多的。
: G5 L, p. P" h& H, O5 S
远远不止2种,还有bin格式的,所以,是需要做模版的。
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2