现在的位置: 首页 > 综合 > 正文

基于OgreBites::Widget的OEGUISystem 介绍

2013年06月09日 ⁄ 综合 ⁄ 共 1015字 ⁄ 字号 评论关闭

Q:什么是OEGUI?

A:OEGUI是一个基于Ogre::Overlay实现的GUI系统.在Ogre1.7版本的实例程序中实现了一些GUI的组件,OEGUI在这些组件的基础上仿照CEGUI实现了一个简单的GUI系统.

 

Q:OEGUISystem与CEGUI比较如何?

A:OEGUISystem现在仍然还是很简陋的,仅仅实现了一些基础的东西.比起CEGUI,功能很多地方还不完善.但OEGUISystem是完全基于Ogre的,改变各个组件的外观只需要更改对应的材质就可以实现多变的效果,这方面比CEGUI方便.

 

Q:OEGUI核心组件有哪些?

A:OEGUI包括3个核心组件.一个是OEGUISystem,全局全力类,用法了CEGUI::System类似.一个是Widget,指的各个窗口上的组件,比方说button,textBox等等.一个是OEWindow.OEWindow这个类存在的必要在于,各个Widget是基于Overlayelement的,而OverlayElement必须与对应的Overlay相关联才能实现显示.所以与CEGUI不同,在Widget与System之间,实现了一个OEWindow的中间类.

 

Q:我如何使用OEGUI?

A:这里有一个简单的示例.

http://blog.csdn.net/moonstrace/archive/2010/03/24/5410278.aspx

 

Q:OEGUI支持中文吗?

A:使用Ogre::Font的Api以及Windows消息钩子函数,OEGUI实现了中文支持.EditBox中实现了一个changeCNFont()的函数,运行中调用这个函数可以使EditBox支持中文.其他的Widget要支持中文,需要更改源代码.你可以根据EditBox的changeCNFont()函数进行对应的更改.(似乎只需要更改一个font指针相关联TextArea的指针).注意默认情况下,你需要把msyh.ttf这个字体文件拷贝到资源组中来.

 

Q:OEGUI还不完善,有必要现在就使用他?

A:我写这个介绍,希望大家能和我一起来扩充这个gui.

 

Q:OEGUI如何在现有的基础上实现扩充?

A:扩充主要是2个方面,继承Widget可以实现自己的gui组件;继承OEWindow可以实现自己的子窗口,比如对话框,聊天框,地图等等.当然,我自己写的代码也有很多不足的地方,希望大家能够一起来指正.

抱歉!评论已关闭.