CEGUI教程 - 图文(4)

2020-02-21 13:43

Avarage FPS,Worst FPS,Best FPS,Triangle Count这几项改成当前帧数:,平均帧数:,最差帧数:,最优帧数:,三角形数:。找到OceanDemo_FrameListener::updateStats,看到了吧。我们将原先的

static CEGUI::String currFps = \static CEGUI::String avgFps = \static CEGUI::String bestFps = \static CEGUI::String worstFps = \static CEGUI::String tris = \ 修改为

static CEGUI::String currFps = (CEGUI::utf8*)Ogre::UTFString(L\当前帧率:\

static CEGUI::String avgFps = (CEGUI::utf8*)Ogre::UTFString(L\平均帧率:\

static CEGUI::String bestFps = (CEGUI::utf8*)Ogre::UTFString(L\最优帧率:\

static CEGUI::String worstFps = (CEGUI::utf8*)Ogre::UTFString(L\最差帧率:\

static CEGUI::String tris = (CEGUI::utf8*)Ogre::UTFString(L\三角形数:\

最后要注意的是,凡是见到汉字的地方都要保存为Unicode(UTF-8)格式。我用VS2005在 文件-高级保存选项 中选择Unicode(UTF-8 带签名)。 好了,都做完了。编译链接一下看看吧。

PS:用layout文件预制gui时可以直接把Text 的value设置为汉字如:

同样也要保存为utf-8。

见到论坛上有好多朋友困惑于CEGUI无法显示和输入中文的问题。输入问题暂且不说,起

码显示中文应该不难吧。我研究了两天,其间不知用了多少遍Google,跑到CEGUI和OGRE的官方网站和论坛找了很久,都没有太多的帮助。也看了打工仔写的相关文档,但是好像需要修改源代码,然后重新编译。难道CEGUI的最新版0.5.1还不支持中文吗?!最后只好自己一点一点摸索。谁知竟然真的被我摸到了,呵呵。下面我就说一说,怎样用CEGUI显示中文。

本教程只是对中文显示做出一些说明,对于其他问题请参阅其他相关文档。本教程使用OgreSDK中的Demo_Ocean为例。

第一步,我们需要准备一个中文字体,我选用的是Window XP系统自带的simhei.ttf(这个字体在系统文件夹WINDOWS\\Fonts中可以找到)。我们需要把它复制到Ogre安装目录中media下的fonts目录中(例如:C:\\OgreSDK\\media\\fonts),这个fonts目录中存放有例子中需要用到的字体文件。

第二步,我们需要准备一个simhei-12.font文件,这个文件可以用记事本编辑,然后保存到Ogre安装目录中media下的gui目录中(例如:C:\\OgreSDK\\media\\gui),其内容如下:

注意:切记不要写段,我最初在网上看到有朋友给出的教程有这个段的内容,说是将你的程序中需要用的字加在这个段中。但是,据我实验得出的结论是,如果加入这个段,会导致创建字体时发生异常,根据CEGUI.log中的提示,是“Glyphs is unknown”。

第三步,检查一下resources.cfg,看看上面用到的fonts和gui两个目录的路径是否正确,如果你是使用SDK的话应该没问题。

第四步,修改OceanDemoCegui.config,将原来的BlueHighway-12修改为

SimHei-12。注意:大小写不要写错。 第五步,修改TaharezLookSkin.scheme,在

之前,增加我们的中文字体说明

注意:大小写不要写错。

第六步,打开OceanDemo.cpp,我们要将左下角的状态统计说明的Current FPS,Avarage FPS,Worst FPS,Best FPS,Triangle Count这几项改成当前帧数:,平均帧数:,最差帧数:,最优帧数:,三角形数:。找到OceanDemo_FrameListener::updateStats,看到了吧。我们将原先的

static CEGUI::String currFps = \static CEGUI::String avgFps = \static CEGUI::String bestFps = \static CEGUI::String worstFps = \static CEGUI::String tris = \ 修改为

static CEGUI::String currFps = (CEGUI::utf8*)Ogre::UTFString(L\当前帧率:

\

static CEGUI::String avgFps = (CEGUI::utf8*)Ogre::UTFString(L\平均帧率:\

static CEGUI::String bestFps = (CEGUI::utf8*)Ogre::UTFString(L\最优帧率:\

static CEGUI::String worstFps = (CEGUI::utf8*)Ogre::UTFString(L\最差帧率:\

static CEGUI::String tris = (CEGUI::utf8*)Ogre::UTFString(L\三角形数:\

最后要注意的是,凡是见到汉字的地方都要保存为Unicode(UTF-8)格式。我用VS2005在 文件-高级保存选项 中选择Unicode(UTF-8 带签名)。 好了,都做完了。编译链接一下看看吧。

PS:用layout文件预制gui时可以直接把Text 的value设置为汉字如: 同样也要保存为utf-8。


CEGUI教程 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新人教版小学数学三年级上册分数的简单计算精品教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: