一 :
1. 你的第一个CEGUI程序
2. 强烈建议仔细研究CEGUISample程序!因为那里介绍了它的一些基本用法,其实最后在游戏当中出现的,也就是这些例子的变化而已。 3. 这里我会引导你写一个第一个自己的简单的CEGUI程序,它使用CEGUISampleHelper提供的框架,使用OpenGL渲染。
4. 这是在CEGUI自己给的Sample程序基础上简化、简化、再简化得出的,目的是让大家对CEGUI程序有一个简单明了的认识,其实就是这么简单。里面只定义了一个背景,一个静态文本,写着“Hello!CEGUI”。 5. 具体的,有几块重要的东西。有一些包含在框架里了,如下: 6. DefaultResourceProvider,这个是CEGUI的一个全局的东西,可以在任何地方操作它的指针,但是一般只需要在一开始操作它。 7. 在CEGuiOpenGLBaseApplication当中,你可以看见下面这样的代码,这就是在使用DefaultResourceProvider的指针在设置资源的路径,你可以毫不客气地复制粘贴到你的工程里 8. CEGUI::DefaultResourceProvider* rp =
static_cast
9. (CEGUI::System::getSingleton().getResourceProvider()); 10.
11. rp->setResourceGroupDirectory(\\
12. rp->setResourceGroupDirectory(\\
13. rp->setResourceGroupDirectory(\\
14. rp->setResourceGroupDirectory(\\
15. rp->setResourceGroupDirectory(\\
16. rp->setResourceGroupDirectory(\\ 17. 下面是整个的代码: 18. #ifndef _TDemo0_h_ 19. #define _TDemo0_h_ 20.
21. #include \ 22. #include \ 23.
24. // 例子类
25. class TDemo0Sample : public CEGuiSample 26. ...{
27. public:
28. // 用于实现初始化的方法 29. bool initialiseSample(); 30.
31. // 关闭
32. void cleanupSample(void); 33. };
34. #endif //_TDemo0_h_ 35. 36. 37. 38. 39.
40. #include \ 41. #include \
42. #include \ 43. #include
45. /**//************************************************************************* 46. 程序入口
47. *************************************************************************/
48. int main(int argc, char *argv[]) 49. ...{
50. TDemo0Sample app; 51. return app.run(); 52. } 53.
54. /**//************************************************************************* 55. 实现初始化方法
56. *************************************************************************/
57. bool TDemo0Sample::initialiseSample() 58. ...{
59. using namespace CEGUI; 60.
61. // 得到窗口管理器
62. WindowManager& winMgr = WindowManager::getSingleton();
63. // 装载资源,只说一下scheme就行,其它的system自己去调
64. SchemeManager::getSingleton().loadScheme(\k.scheme\
65. // 鼠标指针很特殊,但是其实是一样的用法
66. System::getSingleton().setDefaultMouseCursor(\ook\ 67. // 字体
68. FontManager::getSingleton().createFont(\-10.font\ 69.
70. // 这里创建了一个window。第一个参数指定了这个window的类型,第二个参数是名字。 71. Window* background =
winMgr.createWindow(\\ 72.
73. // 设置位置和大小
74. background->setPosition(UVector2(cegui_reldim(0), cegui_reldim( 0)));
75. background->setSize(UVector2(cegui_reldim(1), cegui_reldim( 1))); 76.
77. // 这就要把刚才那个background用作最底层的窗口了