OGRE显示中文

  一、要显示中文,必须要有可以拿来用中文字体,这个中文字体从何而来呢?在你的C盘有,在你系统的字体里找(C:/WINDOWS/Fonts)。例如:我们找到一个“simfang.ttf”字体(仿宋体),将它copy并复制到OGRESDK目录下的Media目录下的fonts目录里面(X:/OgreSDK/media/fonts),你也会发现这里原来就有几个字体。

    二、有字体以后,就要建立一个simfong.font的文件,这个文件是字体的xml配置文件。怎么创建这个文件呢?用记事本建立然后拷贝如下内容到记事本中:

<? xml version="1.0"  ?> < Font  Name ="simfang"  Filename ="simfang.ttf"  Type ="FreeType"  Size ="10"  NativeHorzRes ="800"  NativeVertRes ="600"  AutoScaled ="true"   />


然后将记事本重命名为simfong,然后将后缀名改为font,最后把他放在Media目录下的gui目录里面(X:/OgreSDK/media/gui),你也会发现这里原来就有几个font文件。

    三、用记事本方式打开OGRE下的TaharezLookSkin.scheme文件(版本不同,可能命名不同,但是后缀名和里面的内容是大同小异的,它的路径貌似X:/OgreSDK/media/gui)。然后在内容为:

< Font  Name ="BlueHighway-8"  Filename ="bluehighway-8.font"   />


的后面,插入如下内容:

< Font  Name ="simfang"  Filename ="simfong.font"   />


这样就完成了显示中文的必要条件了。

然后就是修改代码了。我们用OGRE官方网里面的WiKi基础教程的例子七做个练习,你也可以到中国的OGRE网(我是这样的称呼它)去看看学习这个练习。

将这个练习中的代码部分改写如下:
…………
  
// mSystem->setDefaultFont((CEGUI::utf8*)"BlueHighway-12"); 
  mSystem -> setDefaultFont((CEGUI::utf8 * ) " simfang " ); // SimHei-12
…………
  
// quit->setText((CEGUI::utf8*)"Quit");
  quit -> setText((CEGUI::utf8 * )Ogre::UTFString(L " 中文退出 " ).asUTF8_c_str());
…………



编译运行。就OK了。


看到教程6, 就顺便试了试中文显示, 字体设置我倒是想到了, 只是没想到字符集转换这么恶心:

 

  quit -> setText((CEGUI::utf8 * )Ogre::UTFString(L " 中文退出 " ).asUTF8_c_str());

关于layout文件:

<? xml version="1.0"  ?>
< GUILayout >
    
< Window  Type ="DefaultWindow"  Name ="Tutorial Gui" >
        
< Window  Type ="TaharezLook/Button"  Name ="Quit" >
            
< Property  Name ="UnifiedPosition"  Value ="{{0.35,0},{0.45,0}}"   />
            
< Property  Name ="UnifiedSize"  Value ="{{0.3,0},{0.1,0}}"   />
            
< Property  Name ="Text"  Value ="退出"   />
        
</ Window >
    
</ Window >
</ GUILayout >


一开始我只是简单的把配置文件中的"Quit"改了"退出",结果运行就报错了, LOG文件显示是:

 

Exception: ExpatParser::parseXMLFile - XML Parsing error 'not well-formed (invalid token)' at line 7


查了查, 原来文件格式也要改成UTF-8格式的,呵呵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值