#include " TDemo0.h " #include " CEGUI.h " #include " CEGuiBaseApplication.h " #include < cstdlib > /**/ /************************************************************************* 程序入口*************************************************************************/ int main( int argc, char * argv[]) ... { TDemo0Sample app; return app.run();} /**/ /************************************************************************* 实现初始化方法*************************************************************************/ bool TDemo0Sample::initialiseSample() ... { using namespace CEGUI; // 得到窗口管理器 WindowManager& winMgr = WindowManager::getSingleton(); // 装载资源,只说一下scheme就行,其它的system自己去调 SchemeManager::getSingleton().loadScheme("TaharezLook.scheme"); // 鼠标指针很特殊,但是其实是一样的用法 System::getSingleton().setDefaultMouseCursor("TaharezLook", "MouseArrow"); // 字体 FontManager::getSingleton().createFont("Commonwealth-10.font"); // 这里创建了一个window。第一个参数指定了这个window的类型,第二个参数是名字。 Window* background = winMgr.createWindow("TaharezLook/StaticImage", "background_wnd"); // 设置位置和大小 background->setPosition(UVector2(cegui_reldim(0), cegui_reldim( 0))); background->setSize(UVector2(cegui_reldim(1), cegui_reldim( 1))); // 这就要把刚才那个background用作最底层的窗口了 System::getSingleton().setGUISheet(background); // 其实这个在这里没啥用,我认为,只是多了一层窗口。在任何UI系统当中所有的窗口都是一样的。 Window* sheet = winMgr.createWindow("DefaultWindow", "root_wnd"); // 叠加上 background->addChildWindow(sheet); // 又创建了一个窗口,这回是一个静态的文本 Window* st = winMgr.createWindow("TaharezLook/StaticText", "TextWindow/Static"); sheet->addChildWindow(st); st->setPosition(UVector2(cegui_reldim(0.45f), cegui_reldim( 0.23f))); st->setSize(UVector2(cegui_reldim(0.15f), cegui_reldim( 0.05f))); st->setText("Hello!CEGUI"); return true;} /**/ /**************************************************************************************************************************************************/ void TDemo0Sample::cleanupSample() ... { // 啥事也不做} 好了,现在可以新建一个工程,模仿其它例子的工程结构,然后用这个代码,编译,就OK了。 这就是(或者几乎是一个)最简单的CEGUI程序,其实就是这么简单。