基於OgreBites::Widget的OEGUISystem 介紹

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可以實現自己的子窗口,比如對話框,聊天框,地圖等等.當然,我自己寫的代碼也有很多不足的地方,希望大家能夠一起來指正.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章