你的第一个CEGUI程序
强烈建议仔细研究CEGUISample程序!因为那里介绍了它的一些基本用法,其实最后在游戏当中出现的,也就是这些例子的变化而已。
这里我会引导你写一个第一个自己的简单的CEGUI程序,它使用CEGUISampleHelper提供的框架,使用OpenGL渲染。
这是在CEGUI自己给的Sample程序基础上简化、简化、再简化得出的,目的是让大家对CEGUI程序有一个简单明了的认识,其实就是这么简单。里面只定义了一个背景,一个静态文本,写着“Hello!CEGUI”。
具体的,有几块重要的东西。有一些包含在框架里了,如下:
DefaultResourceProvider,这个是CEGUI的一个全局的东西,可以在任何地方操作它的指针,但是一般只需要在一开始操作它。
在CEGuiOpenGLBaseApplication当中,你可以看见下面这样的代码,这就是在使用DefaultResourceProvider的指针在设置资源的路径,你可以毫不客气地复制粘贴到你的工程里
CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::DefaultResourceProvider*>
(CEGUI::System::getSingleton().getResourceProvider());
rp->setResourceGroupDirectory("schemes", "../datafiles/schemes/");
rp->setResourceGroupDirectory("imagesets", "../datafiles/imagesets/");
rp->setResourceGroupDirectory("fonts", "../datafiles/fonts/");
rp->setResourceGroupDirectory("layouts", "../datafiles/layouts/");
rp->setResourceGroupDirectory("looknfeels", "../datafiles/looknfeel/");
rp->setResourceGroupDirectory("lua_scripts", "../datafiles/lua_scripts/");
下面是整个的代码:
#ifndef _TDemo0_h_
#define _TDemo0_h_
#include "CEGuiSample.h"
#include "CEGUI.h"
// 例子类
class TDemo0Sample : public CEGuiSample
...{
public:
// 用于实现初始化的方法
bool initialiseSample();
// 关闭
void cleanupSample(void);
};
#endif //_TDemo0_h_
#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程序,其实就是这么简单。
分享到:
相关推荐
CEImagesetEditor-0.6.0.zip 是一个专门用于CEGUI(Crystal Space GUI)系统的图像集编辑工具的压缩包。CEGUI(Crystal Effects GUI)是一个开源的、跨平台的图形用户界面(GUI)库,它提供了一套灵活且可扩展的组件...
通过学习CELayoutEditor的源码,开发者可以深入了解CEGUI的内部工作原理,提高自己在GUI设计和实现上的技能。此外,这也为自定义编辑器或扩展现有功能提供了基础,对于那些需要更高效、更个性化GUI开发流程的项目来...
CEImagesetEditor是一款专为CEGUI(Crystal Space User Interface)设计的图像集编辑工具。CEGUI是一个开源的图形用户界面库,它提供了丰富的组件和自定义选项,使得开发者能够轻松创建出高质量的2D用户界面。...
在学习笔记中,你可能会发现如何根据你的项目选择合适的渲染后端,并配置CEGUI与之交互。 CEGUI的布局管理也是其一大特点。它提供了灵活的布局机制,使得UI元素可以自动调整大小和位置以适应窗口的变化。这在教程中...
【CEGUI学习文档 如何使用CEGUI】 CEGUI(Crazy Eddie's GUI System)是一个开源的游戏用户界面(UI)库,特别适用于游戏开发。它的核心特性包括使用XML进行资源定位,支持lua脚本,以及对多字节语言的显示能力。...
CELayoutEditor是一款专为CEGUI(Crazy Eddie's GUI System)设计的布局编辑器,主要用于创建和编辑用户界面布局。CEGUI是一个开源的、跨平台的图形用户界面系统,广泛应用于游戏开发和其他需要自定义UI的应用程序。...
本章详细介绍了CEGUI的事件系统和属性系统,这两个系统是CEGUI的核心组成部分之一,对于实现用户交互和界面自定义具有重要意义。 #### 三、CEGUI基类的实现 **3.1 窗口设计原理** CEGUI中的窗口是构成用户界面的...
《CEImagesetEditor-v0.6.2:高效截图编辑工具与CEGUI库解析》 在IT领域,尤其是在游戏开发和图形用户界面设计中,截图编辑工具和图形库扮演着至关重要的角色。"CEImagesetEditor-v0.6.2"正是一款专为OGER开发人员...
**CEGUI简介** CEGUI(Common Event Driven GUI)是一个开源的、跨平台的图形用户界面(GUI)库,主要用于游戏开发和其他实时应用程序。它提供了一套高度可定制的组件,使得开发者能够轻松创建出美观且功能丰富的...
由于包含了源码,开发者不仅可以调试和优化编辑器本身,还能深入学习CEGUI库的实现细节,这对于提升个人技能或改进现有项目非常有价值。在实际项目中,CEGUI的强大功能和灵活性使其成为许多游戏和应用的首选GUI解决...
1. **了解CEGUISample程序**:学习CEGUI提供的示例程序,它们展示了库的基本用法,是实际项目中的基础。 2. **创建第一个CEGUI程序**:使用CEGUISampleHelper框架,以OpenGL渲染为例,构建一个简单的程序。在示例中...
CEGUI提供了多种界面设计工具,如CELayoutEditor用于布局设计,CEImagesetEditor用于皮肤编辑。这些工具使得非编程背景的设计人员也能参与到界面设计中,提高了开发效率和设计质量。 将CEGUI与osg结合,可以充分...
通过这个例子,你可以学习到如何将这两个框架有效地结合在一起,利用CEGUI的强大UI功能增强MFC应用程序的视觉表现和交互性。 首先,CEGUI的集成需要设置必要的初始化步骤,包括配置渲染器、加载布局文件、注册事件...
第1章 CEGUI的简介 - 5 - 1.1CEGUI历史和本书使用的版本 - 5 - 1.2 CEGUI的编译和例子介绍 - 5 - 1.2.1CEGUI源代码的简介 - 5 - 1.2.2CEGUI源代码编译 - 7 - ...第3章 CEGUI基类的实现 - 39 - .......
3. **创建CEGUI窗口**: - 在CEGUIDemo类中,创建CEGUI窗口和视图容器,这通常涉及到定义窗口的基本布局和组件。 - 可能会使用到`CEGUI::Window`类来创建和管理窗口。 4. **注入输入事件**: - 为了响应用户的...
1. **CEGUI布局编辑器** (CELayoutEditor.rar): CEGUI提供了一个布局编辑器工具,用于可视化地设计和编辑窗口布局。这个编辑器可以帮助开发者创建、修改和保存GUI布局的XML文件,这些文件描述了窗口、按钮、文本框...
通过这三个中文教程,你将逐步学习到以上这些知识,并能够熟练地使用CEGUI创建出富有吸引力且功能丰富的用户界面。记得在实践中不断探索和实验,以提高你的技能和对CEGUI的理解。祝你在学习过程中一切顺利!
CEGUI,全称为“Crazy Eddie's GUI System”,是一个开源的、跨平台的用户界面引擎,主要用于游戏开发和应用程序设计。这个强大的工具提供了一个灵活且可扩展的框架,允许开发者创建丰富的图形用户界面(GUI)而无需...
CEGUI深入解析的pdf和word版、在游戏中使用CEGUI、CEGUI渲染入门、资源管理入门、装载数据文件和初始化入门、创建CEGUI窗口入门、输入处理入门、统一度量系统使用指南、在CEGUI中使用Lua脚本入门、Lua消息处理入门、...