|
|

楼主 |
发表于 2006-9-7 21:20:00
|
显示全部楼层
Re:Visual Studio 2005的C#编出来的东西一定要.net框架么
在XNA中显示中文的方法原贴 http://blogs.msdn.com/garykac/articles/732007.aspx,使用了bmfontgen工具,这个是支持Unicode的,所以可以显示中文。原理就是根据字体文件生成bitmap,再在程序中把字画出来,恩,好像很麻烦,不过除了使用图片,我只找到了这种使用中文的方法。
由于原文是英文,我这里大致写一下要怎么用。
第一步,从windows->fonts目录下找到simsun.ttc(我只找到这一种能用的字体,其他的可能会显示不全),把simsun.ttc和bmfontgen放在同一个目录下。
第二步,在此目录下新建gametext.txt ,内容是你要在游戏中使用的文字,当然也可以直接用游戏的源代码文件。这个文件也不是必需的,你也可以把所有字都生成bitmap文件。
第三步,新建optfile.txt,用这个来写bmfontgen的运行参数会很方便。内容如下图。如果想要全部的文字就要把-range 改为0000-fffe
第四步,运行->cmd,到刚才的目录输入 bmfontgen -optfile optfile.txt,会生成font.xml和font-0.png两个文件,把这两个文件add进工程,并在属性里选择copy always
第五步,在你的工程中创建新类BitmapFont.cs,把附件中BitmapFont.cs的代码粘进去
第六步,在Game1.cs中加入 using XNAExtras; ,XNAExtras是BitmapFont类的命名空间(大概是这么叫)
在class Game1中加入private BitmapFont m_font;
在Game1的构造函数中加入m_font = new BitmapFont("font.xml");
m_font.Reset(graphics.GraphicsDevice);
在Draw()中加入 m_font.DrawString(20, 20, Color.DarkBlue, "游戏开始w2moon"); //20,20是显示位置,darkblue为颜色,最后为要显示的文字
第七步,just run it!
目前的问题:1、字体大小在生成bitmap时就确定了
2、只找到了这一种可以用的字体...
|
|