CEGUI中文显示四步曲
2009-08-11 09:38
155 查看
最近使用CEGUI做界面碰到无法显示中文问题,百度,谷歌了一下,搜到不少方法,着实让我兴奋了一下(不用自己想了:-)),但真正去做的时候发现很是有问题,大部分的方法都不能正确的解决,基本是都“短斤缺两”,无奈,只能站在巨人的肩膀上自己摸索了,经过两个小时的努力,终于在晚饭把问题解决了,高兴之余记下解决方法,长征路上留个“脚印”。
第一步,要显示中文,就必须有中文字体,这个很容易就可以得到,在C:\WINDOWS\Fonts目录下就可以找到,在这儿我使用的是仿宋体(simfang.ttf),找到以后将它复制到..\OgreSDK\media\fonts目录中。OK,第一步完工:-)。
第二步,光有字体还不行,你需要建立一个font文件,此文件是字体的xml配置文件。下面我们就开始创建此font文件,在..\OgreSDK\media\gui目录下创建一个文本文件,输入
<?xml version="1.0" ?>
<Font Name="simfang" Filename="simfang.ttf" Type="FreeType" Size="12" NativeHorzRes="800" NativeVertRes="600" AutoScaled="true" />
然后将此文件重命名为simfang.font。接下来进入第三步。
第三步,此步有两种方法
第一种,打开..\Ogre\media\gui目录下的TaharezLookSkin.scheme文件(打开方式自定,文件名有可能不同,但内容大同小异),然后在
<Font Name="BlueHighway-8" Filename="bluehighway-8.font" />
后面插入
<Font Name="SimFang-12" Filename="simfang.font" />
后保存。
第二种,什么都不用做,直接进入第四步,O(∩_∩)O~。
这两种方法都需要将你所使用到的layout文件(在..\Ogre\media\gui目录下)另存为utf-8格式,否则你在layout文件中显示中文时会出错,好了,现在已经完成了,剩下的就是代码了。
第四步,在程序中找到
mSystem->setDefaultFont((CEGUI::utf8*)"BlueHighway-12");
在第三步中如果采用第一种方法则将此句修改为
mSystem->setDefaultFont((CEGUI::utf8*)"SimFang-12");
如果第三步中采用的第二种方法:-),则在此语句之前添加以下语句
CEGUI::FontManager::getSingleton().createFont("simfang.font");
然后再将其改为
mSystem->setDefaultFont((CEGUI::utf8*)"SimFang-12");
OVER,到此CEGUI可以支持中文显示了,下面几点要注意一下。
保证你的resources.cfg中的资源路径可以正确找到。
在程序中需要设置中文显示的地方用
CEGUI::utf8*)Ogre::UTFString(L"添加你要显示的中文").asUTF8_c_str();
来设置。
好了,终于可以在CEGUI中,见到我们的母语了。
作者:wanghao111
Email:wh-7528731@163.com
QQ:715156780
第一步,要显示中文,就必须有中文字体,这个很容易就可以得到,在C:\WINDOWS\Fonts目录下就可以找到,在这儿我使用的是仿宋体(simfang.ttf),找到以后将它复制到..\OgreSDK\media\fonts目录中。OK,第一步完工:-)。
第二步,光有字体还不行,你需要建立一个font文件,此文件是字体的xml配置文件。下面我们就开始创建此font文件,在..\OgreSDK\media\gui目录下创建一个文本文件,输入
<?xml version="1.0" ?>
<Font Name="simfang" Filename="simfang.ttf" Type="FreeType" Size="12" NativeHorzRes="800" NativeVertRes="600" AutoScaled="true" />
然后将此文件重命名为simfang.font。接下来进入第三步。
第三步,此步有两种方法
第一种,打开..\Ogre\media\gui目录下的TaharezLookSkin.scheme文件(打开方式自定,文件名有可能不同,但内容大同小异),然后在
<Font Name="BlueHighway-8" Filename="bluehighway-8.font" />
后面插入
<Font Name="SimFang-12" Filename="simfang.font" />
后保存。
第二种,什么都不用做,直接进入第四步,O(∩_∩)O~。
这两种方法都需要将你所使用到的layout文件(在..\Ogre\media\gui目录下)另存为utf-8格式,否则你在layout文件中显示中文时会出错,好了,现在已经完成了,剩下的就是代码了。
第四步,在程序中找到
mSystem->setDefaultFont((CEGUI::utf8*)"BlueHighway-12");
在第三步中如果采用第一种方法则将此句修改为
mSystem->setDefaultFont((CEGUI::utf8*)"SimFang-12");
如果第三步中采用的第二种方法:-),则在此语句之前添加以下语句
CEGUI::FontManager::getSingleton().createFont("simfang.font");
然后再将其改为
mSystem->setDefaultFont((CEGUI::utf8*)"SimFang-12");
OVER,到此CEGUI可以支持中文显示了,下面几点要注意一下。
保证你的resources.cfg中的资源路径可以正确找到。
在程序中需要设置中文显示的地方用
CEGUI::utf8*)Ogre::UTFString(L"添加你要显示的中文").asUTF8_c_str();
来设置。
好了,终于可以在CEGUI中,见到我们的母语了。
作者:wanghao111
Email:wh-7528731@163.com
QQ:715156780
相关文章推荐
- CEGUI中文显示问题的解决方法
- CEGUI学习笔记三-- 如何显示中文和中文输入 (转kun(小龙))
- 关于CEGUI的中文输入与显示
- OGre(1.65)+CEGUI的中文显示和中文输入,新人必看
- LUA脚本的中文字符串显示到CEGUI
- 在OGRE中用CEGUI显示中文
- CEGUI中文显示问题的解决方法
- CEGUI中文显示提速
- CEGUI 中文输入与显示
- CEGUI显示中文解决办法
- CEGUI OGRE ISO中文显示输入整合,鼠标独占问题,窗口创建
- CEGUI中如何显示中文
- CEGUI中文显示提速
- ogre与cegui结合之显示中文
- 在OGRE中用CEGUI显示中文
- CEGUI中显示中文字体
- CEGUI学习笔记三-- 如何显示中文
- 实现CEGUI的中文显示和输入
- CEGUI/OIS的中文输入与显示
- weblogic8中文显示乱码解决办法