在CEGUI中使用layout文件(1)

在CEGUI中使用layout文件(1)
CEGUI支持两种方式的资源使用,一种就是在前文可见的直接在c++文件当中创建窗体,使用窗体;另一种方式就是在layout文件当中定制窗体。从理论上讲,两种方式都能达到相同的目的。
在不使用layout文件时,CEGUI是不太方便的,因为要定位控件,常常得修改文件当中的参数,如果在c++文件当中修改,每次都编译,很恶心(尤其是在有编辑器的情况下,使用c++就不能使用了)。
所以如果你要使用CEGUI,对layout文件的使用和编辑都是必修课。
下面这个就是一个简单的使用layout文件的例子,作的仅仅是把文件读进来、显示在窗口里了。
 
 
#include  " TDemo1.h "
#include 
" CEGUI.h "
#include 
" CEGuiBaseApplication.h "

#include 
< cstdlib >

int  main( int  argc,  char   * argv[])
{
    TDemo1 app;
    
return app.run();
}


/*************************************************************************

************************************************************************
*/

bool  TDemo1::initialiseSample()
{
    
using namespace CEGUI;

    
// 窗体管理器
    WindowManager& winMgr = WindowManager::getSingleton();

    
// 载入资源
    SchemeManager::getSingleton().loadScheme("TaharezLook.scheme");
    System::getSingleton().setDefaultMouseCursor(
"TaharezLook""MouseArrow");
    FontManager::getSingleton().createFont(
"Commonwealth-10.font");
    
// 在此载入layout文件
    
// 这个就是要在实际当中经常使用的
    Window* sheet = winMgr.loadWindowLayout("TDemo1.layout");
    System::getSingleton().setGUISheet(sheet);

    
return true;
}


/*************************************************************************

************************************************************************
*/

void  TDemo1::cleanupSample()
{
    
// 啥也不做
}

 

TDemo1.layout

 

<? xml version="1.0" encoding="UTF-8" ?>
< GUILayout >
    
< Window  Type ="DefaultWindow"  Name ="root" >
        
< Property  Name ="UnifiedMaxSize"  Value ="{{1,0},{1,0}}"   />
        
< Property  Name ="UnifiedAreaRect"  Value ="{{0,0},{0,0},{1,0},{1,0}}"   />         
        
< Window  Type ="TaharezLook/FrameWindow"  Name ="TDemo1/Window1"   >
            
< Property  Name ="Text"  Value ="TDemo 1"   />
            
< Property  Name ="UnifiedMaxSize"  Value ="{{0.8,0},{0.8,0}}"   />
            
< Property  Name ="UnifiedMinSize"  Value ="{{0.2,0},{0.2,0}}"   />
            
< Property  Name ="UnifiedAreaRect"  Value ="{{0.4,0},{0.1,0},{0.9,0},{0.7,0}}"   />
            
< Property  Name ="CloseButtonEnabled"  Value ="False"   />           
        
</ Window >
    
</ Window >
</ GUILayout >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。CEGUI开发者的目的是希望能够让游戏开发人员从繁琐的GUI实现细节抽身出来,以便有更多的开发时间可以放在游戏性上。 CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。另外,使用更高级的图形库也是可以的,比如OGRE、Irrlicht和RenderWare等,关键需求可以简化为二点: 纹理(Texture)的支持直接写屏(RHW的顶点格式、正交投影、或者使用shader实现) 本书截止日时,CEGUI的最新版本是0.6.0(本书的讨论也是基于此版本),本书光盘提供了SDK和全部源码的下载。 除此之外,CEGUI还同步提供了官方界面编辑器LayoutEditor和ImageSet编辑器,以方便UI和图像集的制作。作为界面编辑器,它需要系统级界面以提供编辑器操作,0.3.0版是基于MFC实现的;而在0.4.0版本以后,改为基于wxWidgets(跨平台的本地UI框架,这里的UI指Window操作系统底层,如:Windows、Unix和Mac,详见http://www.wxwidgets.org)实现。 目前将CEGUI作为游戏界面库开发的游戏已经有好多种,国内的天龙八部,巨人等游戏就是很好的例子。 CEGUI的功能是非常强大的,而且使用也非常的灵活,可以和脚本配合。可以通过配置文件自定义窗口外观。通过布局文件实现窗口布局等等特性,使得游戏的界面开发更加方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值