10个小时尚未完成XNA中文字体的转换

    最近对微软的XNA比较感兴趣,相对于直接用C#调用托管的DirectX来说使用XNA更方便一些。今天想Draw几个汉字,提示有错误,说那几个汉字不在字体包含的字符中,看了一下XNA的帮助,在.spritefont中增加汉字编码的范围就行了。于是将原来的


      <CharacterRegion>
        <Start>&#32;</Start>
        <End>&#126;</End>
      </CharacterRegion>
更改为


      <CharacterRegion>
        <Start>&# 19968;</Start>
        <End>&# 40869;</End>
      </CharacterRegion>


运行,结果半天没反应,程序死了?强制结束后重新进入,重新修改为:


      <CharacterRegion>
        <Start>红</Start>
        <End>红</End>
      </CharacterRegion>


      <CharacterRegion>
        <Start>色</Start>
        <End>色</End>
      </CharacterRegion>


运行起来没问题,可以Draw出红色两个汉字。那刚才我那么写有什么问题呢?到网上搜了一下,发现要把所有的汉字都包括进去的话在编译的时候会非常慢,有人说至少超过50分钟。我决定试一下,看看生成的字体资源多大,能花多长时间,从下午2点钟开始,到现在已经10个小时了,还没编译完成,看来这还真不是一般的慢啊,看来今天晚上是不用关电脑了。看来除非需要使用的汉字非常多的话,还是不能用这个办法来显示汉字,但我想让用户可以在DirectX状态下互相聊天,无法确定用户会输入哪些汉字,必须把所有的汉字都包括进去。唉,还真是个问题。


2009年12月发

有回复如下:

仍然有人前仆后继的死在这个问题上
以我的能力能回答几个人呢。。
1不同的机子能编译的最大字数不同 有的7000有的3000
2不是编译的慢是卡住了 比如编译2000字要半分钟 编译2100字半小时也没好(随便举的数字)
3你解决输入问题了么?你用的MDX?
不用跨平台又要求这么多字的话考虑GDI+吧

你可能感兴趣的:(中文)