冒险解谜游戏中文网 ChinaAVG

标题: [译]Bitmap fonts in XNA [打印本页]

作者: shane007    时间: 2010-5-12 11:38
标题: [译]Bitmap fonts in XNA
原文( J1 B" p# h1 h8 L
http://dearymz.blog.163.com/blog/static/2056574201012483533257/
4 w- u2 k" {+ e7 W: t6 c1 \( m! b8 I5 n0 o
[译]Bitmap fonts in XNA. l+ E! m4 k- e" ], Q
XNA 2010-02-24 20:38:19 阅读88 评论1 字号:大中 , _* J+ a. b$ e/ p
Bitmap fonts in XNA
XNA中的图片字体

( [7 M/ o( t# V. i+ r    XNA字体系统通常从头XML文件所描述的TrueType字体字提取数据,但同时也能直接从手绘的位图中抓取字符图片。
+ q( s6 b0 M1 H+ @9 }    TrueType字体用起来很方便,但有时候你会发现需要一种更具特色的文字外观。 你可以将一系列的字符图片排列到一张位图中来创建自定义的字体,每个字符图片中间的分割需要用纯的品红色(0xFFFF00FF)。
1 a7 @, z) F6 y3 V! x  F   g7 n; }* o1 e  I) i5 V
    这张图片必须包含alpha通道来描述区域的不透明或透明,品红边框区域的alpha通道必须被设置成不透明。) S( O7 Y& ^' F/ B( j+ q
    当你把该文件加入Game Studio Express工程后,默认的Content Importer为“Texture”,默认的Content Processor为“Texture (Sprite, 32bpp)”。为了指出这是一张需要转换成字体的特殊图片,你需要将Content Processor改为“Font Texture”:
! d5 `0 f! X4 N) F! @
5 w. A1 a7 T1 u2 m% [3 @" H8 E
- I6 ?% I* p+ A, M+ z# {3 R
. {6 r$ p7 f! `$ e( k8 a& P    SpriteFont类对从位图创建而来的字体的加载和显示方式和从XML描述文件转换来的字体完全一致。我可以通过上面所示的浮雕图片来渲染时髦的浮雕效果:% v5 s6 d/ c/ z3 E& q6 Z
  Z/ Q* U4 }' U5 S9 o" d
    这时,你也许会担忧手工将全部的字体画到位图中一点也不好玩。你是正确的,我也不喜欢这么干。
) r3 m9 v  Y6 w* Z/ T! t- Q9 m    幸运的是,有个在XNA CGP GSE Samples & Utilities, Inc工作的热心家伙也发现了这个现象,并写了个小工具搞定了该问题。该程序从选择你想要用的TrueType字体界面开始:/ Y( R: a9 @. q6 u6 ^

' e- D  [  L+ l6 F0 }( g
/ k! Q* O* D, y, { 2 u6 V7 b: ]& @3 K4 H. G' L

6 F5 T% ~$ W5 f. t    当点击Export按钮后,工具做了和标准的XML字体描述处理器类似的工作,并将字符图片输入到一张以品红区域隔开的位图文件中。0 ~7 v& Z7 h8 M; U' }5 }
    上面的浮雕字体我是通过ttf2bmp工具创建的,然后将输出的图片放到Photoshop中,选中除品红区域外的部分,然后运行浮雕过滤器,最终将这幅修改过的图片送给Content Pipeline的“Font Texture”处理器。! k, u5 k+ u& H" ?; K9 j7 N
    ShawnHargreaves 2007年4月26日 下午3:44 星期四 发布。
+ |9 N# l0 M' \1 S5 c[完] . h* w. ?2 S+ s5 r, w2 K& i: S
+ Y8 g. n- Z2 I4 W8 q" A
译注: , |, d' \/ n$ z8 j8 N
    XNA通过简单的图片就可以直接生成字体,非常简捷。通过XML的 SpriteFont配置文件生成字体是一种选择,但直接通过图片创建字体可以提供更大的灵活性,比如文中提到用PS对图片进行深度加工。由此看到明文(或可理解)资源格式的重要性。通过明文文本或者其他标准的、流行的或可被理解的方式保存资源对游戏的制作非常重要,自定义资源格式是将自己一步步陷入不毛之地。& V9 i5 V* i" J4 C2 W4 }
    标准化,而不是去创造标准。( I3 q- \8 f9 j$ m4 Z+ z, z
$ T, A0 T3 F) \: O
原文地址:http://blogs.msdn.com/shawnhar/archive/2007/04/26/bitmap-fonts-in-xna.aspx   o; i, @) Q6 G8 r" W
ttf2bmp XNA字体图片生成器下载地址:http://creators.xna.com/en-US/utilities/bitmapfontmaker" k# s1 b3 X( _1 V! b' i. P9 `, R6 h% ?
另外推荐一款强大的XNA字体图片生成器:SpriteFont 21 F$ T# o# y8 N7 i3 v6 ^* e
中文字体的显示可以参考SpriteFontX。原理:在运行时采用GDI+系统将TrueType字体渲染到Bitmap再导到Texture2D,实现TTF字体的动态光栅化。




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2