为了在自己的应用中显示中文,只知道ce说可以很方便的显示中文,于是在ogre3d上找到了
http://www.ogre3d.org/phpBB2/viewtopic.php?t=8970 在cegui.org上找到了http://www.cegui.org.uk/modules/newbb/viewtopic.php?topic_id=529&;forum=2&post_id=3440#forumpost3440和例子 http://crazy-eddie.myby.co.uk/files/CEGUIChineseDemo.zip,在自己模仿着做时遇见一些问题,有幸得到jasom_liu的帮助,原来使用起来的确不麻烦,只是自己E文不好,对unicode及字体的了解也不深入,郁闷很长时间.
现在总结了一下在CEGUI中显示中文需要注意的事项: 1、将simhei.ttf copy to \ogrenew\Samples\Media\gui 2、将simhei-12.font 拷到上目录内容为
<?xml version="1.0" ?> <Font Name="SimHei-12" Filename="simhei.ttf" Type="Dynamic" Size="12" NativeHorzRes="800" NativeVertRes="600"
AutoScaled="true"> <GlyphSet Glyphs="你好世界退出演示渲染到新材质建编辑窗口" />(<----自己要用到的汉字) </Font>
注意大小写!!GlyphSet Glyphs是在程序中要用到的汉字,它是让cegui预生成一个字符图像集用的(想当然的:-P)如果修改了这个文件,注意要用Unicode(UTF-8)的编码来保存,在vc7.1中:文件->高级保存选项 的 编码 栏中选择。
3、在TaharezLook.scheme中
<Font Name="Tahoma-12" Filename="tahoma-12.font" />后加入 <Font Name="SimHei-12" Filename="simhei-12.font" /> 注意大小写
以上是一些准备工作
4、在自己的应用中设置默认字体
mGUISystem->setDefaultFont((CEGUI::utf8*)"Tahoma-12");改为 mGUISystem->setDefaultFont((CEGUI::utf8*)"SimHei-12");
5、在自己的应用程序中就可以把相关的Text属性该为中文了,如:
item = new CEGUI:istboxTextItem((CEGUI::utf8*)"退出", 6);
同样要注意的是要保存为Unicode(UTF-8)的编码。同时这些字要是在simhei-12.font中定义过的字,当然也可以象那个CEGUIChieseDemo
那样用动态生成如:
gfont->defineFontGlyphs(gfont->getAvailableGlyphs() + (utf8*)"当前最佳坏平均的框架率三角");
编译自己的程序,应该就可以看到中文了,罗嗦一下,记住只要有汉字出现的文件就保存为Unicode(UTF-8)编码的!!!
写的这些可能很多人都知道,只是想对和我一样烦恼了很长时间的朋友有点帮助,不对的地方请指教。自己也会慢慢研究,争取理解的更透彻,进而实现中文的输入。
再次谢谢jasom_liu!!! tomjerry 2005-05-25
|