`

学习CEGUI(CELayoutEditor,CEImagesetEditor)之三

阅读更多
你的第一个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图片截取工具

    CEImagesetEditor-0.6.0.zip 是一个专门用于CEGUI(Crystal Space GUI)系统的图像集编辑工具的压缩包。CEGUI(Crystal Effects GUI)是一个开源的、跨平台的图形用户界面(GUI)库,它提供了一套灵活且可扩展的组件...

    CELayoutEditor-0.6.0.zip,CEGUI的编辑器源码

    通过学习CELayoutEditor的源码,开发者可以深入了解CEGUI的内部工作原理,提高自己在GUI设计和实现上的技能。此外,这也为自定义编辑器或扩展现有功能提供了基础,对于那些需要更高效、更个性化GUI开发流程的项目来...

    CEImagesetEditor

    CEImagesetEditor是一款专为CEGUI(Crystal Space User Interface)设计的图像集编辑工具。CEGUI是一个开源的图形用户界面库,它提供了丰富的组件和自定义选项,使得开发者能够轻松创建出高质量的2D用户界面。...

    CEGUI教程+学习笔记

    在学习笔记中,你可能会发现如何根据你的项目选择合适的渲染后端,并配置CEGUI与之交互。 CEGUI的布局管理也是其一大特点。它提供了灵活的布局机制,使得UI元素可以自动调整大小和位置以适应窗口的变化。这在教程中...

    CEGUI学习文档 如何使用CEGUI

    【CEGUI学习文档 如何使用CEGUI】 CEGUI(Crazy Eddie's GUI System)是一个开源的游戏用户界面(UI)库,特别适用于游戏开发。它的核心特性包括使用XML进行资源定位,支持lua脚本,以及对多字节语言的显示能力。...

    CELayoutEditor

    CELayoutEditor是一款专为CEGUI(Crazy Eddie's GUI System)设计的布局编辑器,主要用于创建和编辑用户界面布局。CEGUI是一个开源的、跨平台的图形用户界面系统,广泛应用于游戏开发和其他需要自定义UI的应用程序。...

    CEGUI深入解析 cegui框架解析

    本章详细介绍了CEGUI的事件系统和属性系统,这两个系统是CEGUI的核心组成部分之一,对于实现用户交互和界面自定义具有重要意义。 #### 三、CEGUI基类的实现 **3.1 窗口设计原理** CEGUI中的窗口是构成用户界面的...

    CEImagesetEditor-v0.6.2

    《CEImagesetEditor-v0.6.2:高效截图编辑工具与CEGUI库解析》 在IT领域,尤其是在游戏开发和图形用户界面设计中,截图编辑工具和图形库扮演着至关重要的角色。"CEImagesetEditor-v0.6.2"正是一款专为OGER开发人员...

    CEGUI最新的统一界面编辑器

    **CEGUI简介** CEGUI(Common Event Driven GUI)是一个开源的、跨平台的图形用户界面(GUI)库,主要用于游戏开发和其他实时应用程序。它提供了一套高度可定制的组件,使得开发者能够轻松创建出美观且功能丰富的...

    CEGUI编辑器(包含源码)

    由于包含了源码,开发者不仅可以调试和优化编辑器本身,还能深入学习CEGUI库的实现细节,这对于提升个人技能或改进现有项目非常有价值。在实际项目中,CEGUI的强大功能和灵活性使其成为许多游戏和应用的首选GUI解决...

    CEGUI教程---教你如何使用CEGUI库

    1. **了解CEGUISample程序**:学习CEGUI提供的示例程序,它们展示了库的基本用法,是实际项目中的基础。 2. **创建第一个CEGUI程序**:使用CEGUISampleHelper框架,以OpenGL渲染为例,构建一个简单的程序。在示例中...

    osg与CEGUI的界面设计

    CEGUI提供了多种界面设计工具,如CELayoutEditor用于布局设计,CEImagesetEditor用于皮肤编辑。这些工具使得非编程背景的设计人员也能参与到界面设计中,提高了开发效率和设计质量。 将CEGUI与osg结合,可以充分...

    cegui+mfc例子

    通过这个例子,你可以学习到如何将这两个框架有效地结合在一起,利用CEGUI的强大UI功能增强MFC应用程序的视觉表现和交互性。 首先,CEGUI的集成需要设置必要的初始化步骤,包括配置渲染器、加载布局文件、注册事件...

    CEGUI深入解析文档

    第1章 CEGUI的简介 - 5 - 1.1CEGUI历史和本书使用的版本 - 5 - 1.2 CEGUI的编译和例子介绍 - 5 - 1.2.1CEGUI源代码的简介 - 5 - 1.2.2CEGUI源代码编译 - 7 - ...第3章 CEGUI基类的实现 - 39 - .......

    Ogre+CEGUI范例程序

    3. **创建CEGUI窗口**: - 在CEGUIDemo类中,创建CEGUI窗口和视图容器,这通常涉及到定义窗口的基本布局和组件。 - 可能会使用到`CEGUI::Window`类来创建和管理窗口。 4. **注入输入事件**: - 为了响应用户的...

    cegui相关修改资料

    1. **CEGUI布局编辑器** (CELayoutEditor.rar): CEGUI提供了一个布局编辑器工具,用于可视化地设计和编辑窗口布局。这个编辑器可以帮助开发者创建、修改和保存GUI布局的XML文件,这些文件描述了窗口、按钮、文本框...

    CEGUI 3个中文教程打包下载

    通过这三个中文教程,你将逐步学习到以上这些知识,并能够熟练地使用CEGUI创建出富有吸引力且功能丰富的用户界面。记得在实践中不断探索和实验,以提高你的技能和对CEGUI的理解。祝你在学习过程中一切顺利!

    CEGUI

    CEGUI,全称为“Crazy Eddie's GUI System”,是一个开源的、跨平台的用户界面引擎,主要用于游戏开发和应用程序设计。这个强大的工具提供了一个灵活且可扩展的框架,允许开发者创建丰富的图形用户界面(GUI)而无需...

    完整的CEGUI学习资料

    CEGUI深入解析的pdf和word版、在游戏中使用CEGUI、CEGUI渲染入门、资源管理入门、装载数据文件和初始化入门、创建CEGUI窗口入门、输入处理入门、统一度量系统使用指南、在CEGUI中使用Lua脚本入门、Lua消息处理入门、...

Global site tag (gtag.js) - Google Analytics