冒险解谜游戏中文网 ChinaAVG
标题:
【汉化资料】关于CEGUI研究的阶段性成果
[打印本页]
作者:
shane007
时间:
2008-11-17 12:10
标题:
【汉化资料】关于CEGUI研究的阶段性成果
CEGUI是一个开放源码的开发游戏界面的库,如果你在游戏里发现CEGUIBase_d.dll之类以CEGUI开头的DLL的话,这个游戏的界面就是CEGUI做的,游戏字幕的输出自然也是用它。
$ n# D6 Y" w, D/ U
9 M q+ ]$ ]' F, ~3 i4 P2 {
CEGUI有0.4.1,0.5.X,0.6.X等几个版本,从0.5.X开始就对中文完美支持了。
* t) N% @4 @1 Q+ L/ x
问题是0.4.1这个版本,对中文的支持不太完美,说是不能换页之类的。
7 P2 h( }) I2 O3 A9 F- w0 z: l" |
现阶段,不少AVG游戏中还是用
CEGUI0.4.1
这个版本,比如
安徒生童话
这个AVG游戏.
- S# f, z, [8 F& o" D
因为FONT字体定义文件的格式不同,所以可以判断出是0.4.1这个版本
& X9 |- i% t" Y
6 @' J4 I# n% j$ V0 R
解决方法
! R* U/ t' w% r" `# y7 J
关于解决方法,我查了不少资料,大致有2个
8 O2 s9 E2 r+ L
1。改造0.4.1的DLL文件,参照0.5.X的代码,把关键地方进行修改。
" L# s. t* S# K( h7 z3 R5 _
这个方法较难,暂不讨论。
6 x0 B3 h# @ m* C' T! j
6 S( C& P; |* T3 k/ k, p' L# c, K& j
2。0.4.1的字体定义文件还是为中文留了一条路的。
& m+ r0 b7 w7 e2 N) K3 U
可以用
GlyphSet
这个属性只生成要用到的字体的图片。
; c" w0 m. O; Y. x
中文汉字有6000多个,但是在一个AVG里用到的中文可能只有1000多个。
8 J5 @# J! I1 w4 x% s
把这些中文汉字定义到GlyphSet这个属性,也许就能正常显示了。
3 B" ` { L8 m4 K' ~4 {( Z. k
这个方法尚未做实际测试,效果未知。
, O( O) A1 D$ `: b8 y+ x5 d$ x
5 ?9 ^ \1 @3 G# O( B9 k
相关资料
. j2 c4 j. v' T( C# V
5 \" n% w7 U! H$ w; Z$ z
CEGUI0.4.1字体定义文件说明
& [, A! r& K* T/ p) f) U: w3 K
http://www.cegui.org.uk/wiki/index.php/Font_files
6 p, R- ?& [9 l2 G* ]0 E
6 A! @/ V: x5 `; x+ b. x6 |
CEGUI0.5.X关于字体定义文件的变更点
: L" o: R2 y$ d! P2 B& P) i
原文
; `6 U$ F$ |# i9 F, \
http://www.cegui.org.uk/wiki/index.php/Release_Notes_0.5.X
* [. S1 `' }! y- m7 n$ }4 o
! X8 J8 ~ X. [2 ^
A FontDemo sample which shows several properties of the new Font class.
9 @' c$ z! Q. C6 B5 l# I2 h) N L
The above changes resulted in some slight changes to the format of the XML .font files:
& n0 ]# N5 d3 U* I
B1 Q( u+ s; J' `- }
GlyphSet, GlyphRange, Glyph sections of the Font are gone
0 i- u+ }3 m( C* j: Z. c1 D
The possible values of the Type attribute are now:
; J! e( y+ r* J+ a" D' j
FreeType (instead of Dynamic)
4 w- U. _; C) n
Pixmap (instead of Static)
, V! `* y. m4 h" R, f
The FirstCodepoint and LastCodepoint attributes of the Font section were removed
& c0 K, [" i4 q! I* S
After you change your .font files as mentioned above, they should work without problems.
$ \- a* ?6 {# G- c+ C
5 \4 T$ }' U# @% p! x
下面这篇文章应该是针对
CEGUI0.4.1
这个版本来说的。
: K! D8 y$ B1 A9 C5 t+ v. x1 [
5 I. u8 r1 i6 i
如何让CEGUI显示出中文
/ ^3 P% G; N" Y5 x4 L- o/ f% ~
原文
8 Y8 @6 f- m7 Y [/ [8 e& i' x
http://blog.csdn.net/khzide/archive/2005/09/07/473765.aspx
( U5 O9 \" b+ `% p% g# q
/ }5 o- x! l. d: q4 U0 s; _3 ]
CEGUI(Crazy Eddie's GUI System ) 是一个免费并开放源码的图形(GUI API库),写于C++, 并且面向对象。你可以用它来创建游戏中的GUI部分,而不用再自已动手去实现。
) O* M( B1 F$ h
# u7 ?8 S* V" a e% O
管方网站:
http://www.cegui.org.uk/
上面有很多有用的信息,如果你要详细了解它的话,可以常去这上面逛逛。
! g4 U/ m% ~3 e; t; `
6 r. J4 a. X: l
发现有好多战友与我一样,一开始用它的时候不知道如何显示出中文,只是听说很easy,但却自已试不出来。我走了一些弯路,希望别人不要再跟我一样了。其实它实现起来真是是很easy. CEGUI是基于utf8格式的,所以可以显示出中文,但需要注意的是这里面烦是设及到汉字的地方都要保存成(utf8)格式,或者在程序中动态转换成utf8字符串也行。至于如何保存在utf8格式,有很多哟,可以用EditPlus, uedit32, 更酷的一个就是vs.net了。哈哈,可惜它太大了,携带起来不方便。
7 [" ]; L* \* ^- q, n8 v- b
2 S5 o) U; v# t; _# f
1.你要指定一种中文字体文件(*.ttf) 例如我选用的simhei.ttf, 这可以在window目录中的font文件夹中找到一些。 这就是CEGUI中我们要用到的中文字体来源。
$ K* O$ ?) C: \, c+ H
! N; C$ b0 k c/ H) i
2. 需要定义一个 (.font)文件, 这个文件其实是CEGUI用于生成字符映射图片的一个索引文件(xml格式),
在<Font> 节下面定义一个子项<GlyphSet> 并指定其属生 Glyphs="所有需要用到的中文字符集" CEGUI会根据它而生成最终字符映射图片
,如果你这里没有将用到的汉字全部列出,没关系,大不了就是CEGUI不会显示出你的字符或者显示成乱码^-^,系统不会崩的。
/ d5 D; y* m, `8 ? p5 i) h
I0 _) I3 g4 T4 c5 J! _
3.字个(.font)文件一定要保存成(utf8)格式,这是很重要的哟。
3 e5 T3 R! y! P, \) h
) `" a+ Y; Y X/ d
4.如果你的程序中用到了汉字,那么这个文件最好也要保存成(utf8)格式,当然你也可以去进行ascii<->utf8的转换,都一样的。
T( j# O. I5 L: M1 M2 N
# \' y$ M3 h- h. y9 L6 [
* o6 |, g* u, {- r+ Z2 q
这就完事了,怎么样,很简单吧。至于如何去载入字体文件,如何使用CEGUI,就不关吾的事了。相信你即然看了这遍文件,那些也一定会了吧。
2 ?8 P6 F n) V- D. ]
9 n" r; K8 r: H" M5 q" F6 U1 U, _
9 Z( _$ ~6 k6 ~( f" J' N; Y2 ^$ {% R
4 z M& o- m; n
" ?* ~0 F, h& m' j# L* S3 N
5 s8 `' b# {' W9 B! i' j
4 l/ @ V! P: n) `2 D2 i
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2