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