Ogre中显示中文

在Ogre1.2.5版本中,通过与Ogre官方论坛的开发者讨论实现了Overlay的中文显示,当初的实现非常的怪异,具体的实现可以参见Ogre官方论坛。

随着Ogre的更新,现在Ogre已经发布了1.4.7,1.4系列版本有一个重要的改进,就是加入了UTFString,这为Ogre中文显示予以很大的帮助。为了便于演示,我直接使用Ogre自带的Overlay,也就是大家熟悉的DebugOverlay,测试工程我选择Demo_ParticleFX,选择其他的也没有关系。现在编译它,运行后得到下图:


图的最左下角显示的就是英文DebugOverlay,接下来我们的任务就是把它编程中文的,^_^。

Overlay中文化操作步骤如下

1. 打开OgreSDK\media\packs\ OgreCore.zip。

2. 打开C:\WINDOWS\Fonts,把simhei.ttf添加到OgreCore.zip,(什么,没有simhei.ttf这个文件,那就还其他的中文ttf字体吧)。

3. 打开OgreCore.zip中的Ogre.fontdef,里面有BlueHighway这个字体定义块,在他的下面添加我们的SimHei,code_points里面的一大堆数字看不明白没关系,随后文章会解释。 

SimHei
{
type truetype
source simhei.ttf
size 16
resolution 96

code_points 33-166 24403-24403 21069-21069 24103-24103 36895-36895 29575-29575 24179-24179 22343-22343 26368-26368 39640-39640 20302-20302 19977-19977 35282-35282 24418-24418 25968-25968 37327-37327 25209-25209 27425-27425 
}

4. 打开OgreCore.zip中的OgreDebugPanel.overlay,把BlueHighway全部替换成SimHei,我们要使用中文字体了,嘿嘿。

5. 修改完成后,确保所做的修改已经保存到OgreCore.zip。

6. 进入Ogre解决方案,打开文件ExampleFrameListener.h,把54-59行的代码替换如下:

static  String currFps  =   " Current FPS:  " ;

static  String avgFps  =   " Average FPS:  " ;

static  String bestFps  =   " Best FPS:  " ;

static  String worstFps  =   " Worst FPS:  " ;

static  String tris  =   " Triangle Count:  " ;

static  String batches  =   " Batch Count:  " ;

替换为:

static  DisplayString currFps  =  L " 当前帧速率:  " ;

static  DisplayString avgFps  =  L " 平均帧速率:  " ;

static  DisplayString bestFps  =  L " 最高帧速率:  " ;

static  DisplayString worstFps  =  L " 最低帧速率:  " ;

static  DisplayString tris  =  L " 三角形数量:  " ;

static  DisplayString batches  =  L " 批次:  " ;

7. 最后重新编译工程,下面是我运行的截图,是不是已经显示中文了,^_^。

现在再来看看SimHei中的code_points是如何生成的,这个可以参考我上次写的这篇文章http://www.cnblogs.com/gogoplayer/archive/2008/05/09/1189795.html,至此,实现Overlay中文显示。

转载请注明出处:

作者:gogoplayer

E-mail : gogoplayer@163.com

QQ : 78939328

http://www.gogoplayer.com.cn/

转载于:https://www.cnblogs.com/wanghao111/archive/2009/08/11/1543495.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值