78. System::getSingleton().setGUISheet(background); 79.
80. // 其实这个在这里没啥用,我认为,只是多了一层窗口。在任何UI系统当中所有的窗口都是一样的。 81. Window* sheet =
winMgr.createWindow(\ 82.
83. // 叠加上
84. background->addChildWindow(sheet); 85.
86. // 又创建了一个窗口,这回是一个静态的文本 87. Window* st =
winMgr.createWindow(\\
88. sheet->addChildWindow(st);
89. st->setPosition(UVector2(cegui_reldim(0.45f), cegui_reldim( 0.23f)));
90. st->setSize(UVector2(cegui_reldim(0.15f), cegui_reldim( 0.05f)));
91. st->setText(\ 92.
93. return true;
94. } 95.
96. /**//************************************************************************* 97.
98. *************************************************************************/
99. void TDemo0Sample::cleanupSample() 100. 101. 102. 103. 104.
...{
// 啥事也不做 }
好了,现在可以新建一个工程,模仿其它例子的工程结构,然后用
这个代码,编译,就OK了。 105.
这就是(或者几乎是一个)最简单的CEGUI程序,其实就是这么简
单。
二:
1. 在CEGUI中使用layout文件(1)
2. CEGUI支持两种方式的资源使用,一种就是在前文可见的直接在c++文件当中创建窗体,使用窗体;另一种方式就是在layout文件当中定制窗体。从理论上讲,两种方式都能达到相同的目的。
3. 在不使用layout文件时,CEGUI是不太方便的,因为要定位控件,常常得修改文件当中的参数,如果在c++文件当中修改,每次都编译,很恶心(尤其是在有编辑器的情况下,使用c++就不能使用了)。 4. 所以如果你要使用CEGUI,对layout文件的使用和编辑都是必修课。 5. 下面这个就是一个简单的使用layout文件的例子,作的仅仅是把文件读进来、显示在窗口里了。 6.
7. #include \ 8. #include \
9. #include \ 10.
11. #include
13. int main(int argc, char *argv[]) 14. ...{
15. TDemo1 app; 16. return app.run(); 17. } 18.
19. /**//************************************************************************* 20.
21. *************************************************************************/
22. bool TDemo1::initialiseSample() 23. ...{
24. using namespace CEGUI; 25.
26. // 窗体管理器
27. WindowManager& winMgr = WindowManager::getSingleton(); 28.
29. // 载入资源
30. SchemeManager::getSingleton().loadScheme(\k.scheme\
31. System::getSingleton().setDefaultMouseCursor(\ook\
32. FontManager::getSingleton().createFont(\-10.font\
33. // 在此载入layout文件
34. // 这个就是要在实际当中经常使用的 35. Window* sheet =
winMgr.loadWindowLayout(\ 36. System::getSingleton().setGUISheet(sheet);
37.
38. return true; 39. } 40.
41. /**//************************************************************************* 42.
43. *************************************************************************/
44. void TDemo1::cleanupSample() 45. ...{
46. // 啥也不做 47. } 48. 49.
50. TDemo1.layout 51. 52. 53.
54.
56.