CEGUI ,全稱 "Crazy Eddie's GUI System" ,是一個(gè)專門的用戶界面庫(kù),開(kāi)源并且免費(fèi),它支持 DirectX8 、 DirectX9 ,除了可以作為 OGRE 的界面外掛,還支持另一個(gè)免費(fèi)開(kāi)源的 3D 引擎 Irrlicht 。由于它功能的相對(duì)強(qiáng)大和靈活, OGRE 的開(kāi)發(fā)團(tuán)隊(duì)一直在推薦 OGRE 用戶使用這個(gè) CEGUI 來(lái)開(kāi)發(fā)用戶界面,逐漸拋棄 OGRE 本身過(guò)于簡(jiǎn)陋的 GUI 插件。尤其是在行將到來(lái)的新版本 OGRE 1.5 的聲明中特別強(qiáng)調(diào)了這一點(diǎn),盡管這個(gè)版本仍然暫時(shí)保留內(nèi)置 GUI 系統(tǒng),但 OGRE 1.5 將會(huì)是最后一個(gè)保留內(nèi)置 GUI 的版本。 OGRE 看來(lái)似乎將專注于向一個(gè)純粹的、然而富于協(xié)作和擴(kuò)展性的圖形引擎發(fā)展,這應(yīng)該得益于它的龐大的社群支持,使得很多事情可以通過(guò)外掛一些更專業(yè)的引擎來(lái)實(shí)現(xiàn),物理引擎使用 ODE 、 Tokamak 、 NovodeX ,網(wǎng)絡(luò)引擎使用 openTNL 、 RakNet 、 eNet ,聲音引擎使用 FMod 、 OpenAL ,以及這個(gè)界面引擎,使用 CEGUI 。外掛現(xiàn)成模塊的好處就是可以專注于一個(gè)方面,開(kāi)發(fā)一個(gè)五臟俱全的游戲引擎并不是個(gè)容易的事情,市面上最負(fù)盛名的幾個(gè)商業(yè)引擎的開(kāi)發(fā), Unreal 、Renderware 、 Lithtech ,往往要耗費(fèi)數(shù)百人年,并且在這些商業(yè)引擎中同樣會(huì)使用外掛的商業(yè)庫(kù),在這個(gè)年代,沒(méi)有人可以從頭創(chuàng)建一切。
CEGUI 基于 Unicode ,所以它支持中文字體的顯示, 但是對(duì)中文字符的輸入現(xiàn)在尚未解決,因?yàn)椴粩嘤衼?lái)自中國(guó)的 OGRE + CEGUI 用戶的質(zhì)詢和申請(qǐng),對(duì)中文輸入的支持可能已在考慮中。
CEGUI 的官方主頁(yè)在這里:
Crazy Eddie's GUI System
1. CEGUI 的 CVS 下載
使用 WinCVS ,使用方法參考 OGRE 一起學(xué) (1) —— 獲取 OGRE 。
(1) 在 WinCVS 主界面左欄選中 "cvshome" ;
(2) 從主菜單選擇 [Admin]-[Command Line...] ,彈出 "Command line settings" 面板,在 "Settings" 選項(xiàng)卡的上部輸入框里,輸入如下指令進(jìn)行登陸:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crayzedsgui login
當(dāng)彈出對(duì)話框問(wèn)訊密碼時(shí)直接按回車。
(3) 成功登陸以后, WinCVS 主界面的下部信息欄會(huì)顯示這樣一條信息:
***** CVS exited normally with code 0 *****
code 0 就表示登陸成功,如果不成功,顯示為 code 1 。
(4) 登陸成功以后,再次打開(kāi) "Command line settings" 面板,輸入并運(yùn)行如下指令:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crayzedsgui co cegui_mk2
CVS 源代碼就開(kāi)始下載了。耐心等它下載完畢。
(5) 這時(shí)候在 WinCVS 主界面左欄的 “cvshome” 下邊,多了一個(gè) "cegui_mk2" 的文件夾。你可以到硬盤的 F:\cvshome\cegui_mk2\ 看一下,所有的源代碼都在那里了。
2. CEGUI 本體 lib 和 dll 的編譯:
最好使用 VS.Net 2003 的 VC7.1 來(lái)編譯,它對(duì) OGRE 和 CEGUI 的支持都很好。 VC7.0 和 VC7.1 都可以。
(1) 首先要下載編譯 CEGUI 所需的依賴項(xiàng),包括頭文件和庫(kù),下載頁(yè)在這里:
http://crayzedsgui.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=6
首先下載 CEGUI Mk-2 Win32 Dependencies: Common Files ,這些是公用的頭文件;
其次根據(jù)你的編譯器版本選擇對(duì)應(yīng)的庫(kù),例如我使用 VC.Net 2003 ,就選擇下載 CEGUI Mk-2 Win32 Dependencies: Libs for MSVC 7.1 。
下載以后分別解壓縮,把頭文件 cegui_mk2-deps-common\dependencies\include 和庫(kù)文件cegui_mk2-deps-vc7.1\dependencies\lib 這兩個(gè)目錄全部復(fù)制到 cvshome\cegui_mk2\dependencies 目錄下。
(2) 現(xiàn)在設(shè)置工作環(huán)境。打開(kāi) VS.NET 或 VS.NET 2003 ,在主菜單中選擇 [工具]-[選項(xiàng)...] ,打開(kāi) "選項(xiàng)" 面板,在左邊目錄選擇 [項(xiàng)目]-[VC++ 目錄](méi) ,在右欄的 Include 和 Lib 目錄下添加以下路徑:
包含文件:
X:\cvshome\cegui_mk2\dependencies\include
庫(kù)文件:
X:\cvshome\cegui_mk2\dependencies\lib
注意把這幾條目錄放在目錄列表的最上面。
(3) OK. 現(xiàn)在打開(kāi) cvshome\cegui_mk2\makefiles\win32\VC++7.1\CEGUI.sln ,從主菜單中選擇 [生成]-[批生成...] ,打開(kāi) "批生成" 面板,點(diǎn)擊右邊的 [全選] 按鈕,然后點(diǎn)擊 [重新生成] 按鈕開(kāi)始生成,靜待生成結(jié)束。
編譯生成的 *.dll 文件在 cvshome\cegui_mk2\bin 目錄下, *.lib 文件在 cvshome\cegui_mk2\lib 目錄下。
編譯成功以后,為了編譯以后的 CEGUI 相關(guān)項(xiàng)目,我們要在 VS.Net 的工作環(huán)境中添加 CEGUI 的 include 和 lib 目錄:
包含文件:
X:\cvshome\cegui_mk2\include
庫(kù)文件:
X:\cvshome\cegui_mk2\lib
3. 編譯 CEGUI 示例
(1) 首先來(lái)這里下載幾個(gè) CEGUI 示例:
http://crayzedsgui.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=5
其中的 CEGUI under Ogre - Demo 4 和 CEGUI under Ogre - Demo 7 是帶有源文件的,我們挑選 CEGUI under Ogre - Demo 4 來(lái)嘗試編譯。
(2) Demo 下載以后解壓縮,文件目錄不要亂放,要放到 cvshome 目錄下。
然后雙擊 cvshome\ogre_gui_demo4\CEGUIOgre_TestDriver1.sln 打開(kāi)解決方案。
由于 CEGUI 作者的疏忽, Release 的項(xiàng)目設(shè)置里有幾個(gè)多余的 lua.lib ,會(huì)導(dǎo)致編譯時(shí)因找不到這些庫(kù)而失敗,所以我們需要?jiǎng)h除這幾個(gè)庫(kù)。打開(kāi) CEGUIOgre_Demo4 的項(xiàng)目屬性,刪除 Release 配置屬性的 [鏈接器]-[輸入]-[附加依賴項(xiàng)] 條目中的 liblua.lib liblualib.lib libluabind.lib 這幾個(gè)庫(kù)。
(3) 然后生成。
生成的 *.exe 文件在 cvshome\ogre_gui_demo4 的 Release 和 Debug 目錄下。但是你現(xiàn)在就打開(kāi)運(yùn)行肯定會(huì)失敗。
失敗的原因首先是因?yàn)檫@個(gè) Demo 使用的是最新版本的 OGRE 的頭文件和庫(kù)來(lái)編譯,但是 Release 和 Debug 目錄下放的是老版本的 *.dll ,所以你需要把 cvshome\ogrenew\Samples\Common\bin 的 Release 和 Debug 目錄下的所有 *.dll 都復(fù)制到 cvshome\ogre_gui_demo4 的 Release 和 Debug 目錄下,用你的最新版本覆蓋舊版本,這是一個(gè);
然后, CEGUI 的依賴項(xiàng)中需要一個(gè) *.dll ,在 cvshome\cegui_mk2\dependencies\lib 中有兩個(gè) *.dll ,把 xerces-c_2_5_0.dll 復(fù)制到 cvshome\ogre_gui_demo4\Release ,把 xerces-c_2_5_0D.dll 復(fù)制到 cvshome\ogre_gui_demo4\Debug 。
還有 CEGUI 本體的 *.dll ,在 cvshome\cegui_mk2\bin 目錄下,也要全部復(fù)制過(guò)來(lái)。 *.dll 文件名帶 _d 的是 Debug 版本。
OK. 現(xiàn)在示例可以運(yùn)行了。
作為對(duì) CEGUI 的一個(gè)應(yīng)用實(shí)例,你可以下載下面這個(gè) OGRE 粒子編輯器來(lái)體驗(yàn)一下:
ParticleEditor_AlphaDemo
CEGUI 基于 Unicode ,所以它支持中文字體的顯示, 但是對(duì)中文字符的輸入現(xiàn)在尚未解決,因?yàn)椴粩嘤衼?lái)自中國(guó)的 OGRE + CEGUI 用戶的質(zhì)詢和申請(qǐng),對(duì)中文輸入的支持可能已在考慮中。
CEGUI 的官方主頁(yè)在這里:
Crazy Eddie's GUI System
1. CEGUI 的 CVS 下載
使用 WinCVS ,使用方法參考 OGRE 一起學(xué) (1) —— 獲取 OGRE 。
(1) 在 WinCVS 主界面左欄選中 "cvshome" ;
(2) 從主菜單選擇 [Admin]-[Command Line...] ,彈出 "Command line settings" 面板,在 "Settings" 選項(xiàng)卡的上部輸入框里,輸入如下指令進(jìn)行登陸:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crayzedsgui login
當(dāng)彈出對(duì)話框問(wèn)訊密碼時(shí)直接按回車。
(3) 成功登陸以后, WinCVS 主界面的下部信息欄會(huì)顯示這樣一條信息:
***** CVS exited normally with code 0 *****
code 0 就表示登陸成功,如果不成功,顯示為 code 1 。
(4) 登陸成功以后,再次打開(kāi) "Command line settings" 面板,輸入并運(yùn)行如下指令:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crayzedsgui co cegui_mk2
CVS 源代碼就開(kāi)始下載了。耐心等它下載完畢。
(5) 這時(shí)候在 WinCVS 主界面左欄的 “cvshome” 下邊,多了一個(gè) "cegui_mk2" 的文件夾。你可以到硬盤的 F:\cvshome\cegui_mk2\ 看一下,所有的源代碼都在那里了。
2. CEGUI 本體 lib 和 dll 的編譯:
最好使用 VS.Net 2003 的 VC7.1 來(lái)編譯,它對(duì) OGRE 和 CEGUI 的支持都很好。 VC7.0 和 VC7.1 都可以。
(1) 首先要下載編譯 CEGUI 所需的依賴項(xiàng),包括頭文件和庫(kù),下載頁(yè)在這里:
http://crayzedsgui.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=6
首先下載 CEGUI Mk-2 Win32 Dependencies: Common Files ,這些是公用的頭文件;
其次根據(jù)你的編譯器版本選擇對(duì)應(yīng)的庫(kù),例如我使用 VC.Net 2003 ,就選擇下載 CEGUI Mk-2 Win32 Dependencies: Libs for MSVC 7.1 。
下載以后分別解壓縮,把頭文件 cegui_mk2-deps-common\dependencies\include 和庫(kù)文件cegui_mk2-deps-vc7.1\dependencies\lib 這兩個(gè)目錄全部復(fù)制到 cvshome\cegui_mk2\dependencies 目錄下。
(2) 現(xiàn)在設(shè)置工作環(huán)境。打開(kāi) VS.NET 或 VS.NET 2003 ,在主菜單中選擇 [工具]-[選項(xiàng)...] ,打開(kāi) "選項(xiàng)" 面板,在左邊目錄選擇 [項(xiàng)目]-[VC++ 目錄](méi) ,在右欄的 Include 和 Lib 目錄下添加以下路徑:
包含文件:
X:\cvshome\cegui_mk2\dependencies\include
庫(kù)文件:
X:\cvshome\cegui_mk2\dependencies\lib
注意把這幾條目錄放在目錄列表的最上面。
(3) OK. 現(xiàn)在打開(kāi) cvshome\cegui_mk2\makefiles\win32\VC++7.1\CEGUI.sln ,從主菜單中選擇 [生成]-[批生成...] ,打開(kāi) "批生成" 面板,點(diǎn)擊右邊的 [全選] 按鈕,然后點(diǎn)擊 [重新生成] 按鈕開(kāi)始生成,靜待生成結(jié)束。
編譯生成的 *.dll 文件在 cvshome\cegui_mk2\bin 目錄下, *.lib 文件在 cvshome\cegui_mk2\lib 目錄下。
編譯成功以后,為了編譯以后的 CEGUI 相關(guān)項(xiàng)目,我們要在 VS.Net 的工作環(huán)境中添加 CEGUI 的 include 和 lib 目錄:
包含文件:
X:\cvshome\cegui_mk2\include
庫(kù)文件:
X:\cvshome\cegui_mk2\lib
3. 編譯 CEGUI 示例
(1) 首先來(lái)這里下載幾個(gè) CEGUI 示例:
http://crayzedsgui.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=5
其中的 CEGUI under Ogre - Demo 4 和 CEGUI under Ogre - Demo 7 是帶有源文件的,我們挑選 CEGUI under Ogre - Demo 4 來(lái)嘗試編譯。
(2) Demo 下載以后解壓縮,文件目錄不要亂放,要放到 cvshome 目錄下。
然后雙擊 cvshome\ogre_gui_demo4\CEGUIOgre_TestDriver1.sln 打開(kāi)解決方案。
由于 CEGUI 作者的疏忽, Release 的項(xiàng)目設(shè)置里有幾個(gè)多余的 lua.lib ,會(huì)導(dǎo)致編譯時(shí)因找不到這些庫(kù)而失敗,所以我們需要?jiǎng)h除這幾個(gè)庫(kù)。打開(kāi) CEGUIOgre_Demo4 的項(xiàng)目屬性,刪除 Release 配置屬性的 [鏈接器]-[輸入]-[附加依賴項(xiàng)] 條目中的 liblua.lib liblualib.lib libluabind.lib 這幾個(gè)庫(kù)。
(3) 然后生成。
生成的 *.exe 文件在 cvshome\ogre_gui_demo4 的 Release 和 Debug 目錄下。但是你現(xiàn)在就打開(kāi)運(yùn)行肯定會(huì)失敗。
失敗的原因首先是因?yàn)檫@個(gè) Demo 使用的是最新版本的 OGRE 的頭文件和庫(kù)來(lái)編譯,但是 Release 和 Debug 目錄下放的是老版本的 *.dll ,所以你需要把 cvshome\ogrenew\Samples\Common\bin 的 Release 和 Debug 目錄下的所有 *.dll 都復(fù)制到 cvshome\ogre_gui_demo4 的 Release 和 Debug 目錄下,用你的最新版本覆蓋舊版本,這是一個(gè);
然后, CEGUI 的依賴項(xiàng)中需要一個(gè) *.dll ,在 cvshome\cegui_mk2\dependencies\lib 中有兩個(gè) *.dll ,把 xerces-c_2_5_0.dll 復(fù)制到 cvshome\ogre_gui_demo4\Release ,把 xerces-c_2_5_0D.dll 復(fù)制到 cvshome\ogre_gui_demo4\Debug 。
還有 CEGUI 本體的 *.dll ,在 cvshome\cegui_mk2\bin 目錄下,也要全部復(fù)制過(guò)來(lái)。 *.dll 文件名帶 _d 的是 Debug 版本。
OK. 現(xiàn)在示例可以運(yùn)行了。
作為對(duì) CEGUI 的一個(gè)應(yīng)用實(shí)例,你可以下載下面這個(gè) OGRE 粒子編輯器來(lái)體驗(yàn)一下:
ParticleEditor_AlphaDemo