CEGUI、Layout、scheme自定义界面(一)

    CEGUI提供了很强大的界面编辑功能,能够很容易的调用和生产。这些是一点基本的实践经验和原理的感悟,如果有错误,请包含和指出,另外,本文内容需要看官批判的接受^_^废话不多说,先来看看基本的原理。

    首先,layout是一个界面的表层,用CEGUI或者LUA载入成一个Window。用游戏界面中的例子可以方便理解。我打开一个道具栏,其实就是在界面根窗口中加载一个子窗口,而承载这个子窗口的XML文本就是一个Layout,layout中包括了以下的一些东西:

        <GUILayout >

            <Window Type="TaharezLook/FrameWindow" Name="login" >
            <Property Name="Font" Value="FairChar-30" />
            <Property Name="TitlebarFont" Value="FairChar-30" />
            <Property Name="RollUpEnabled" Value="False" />
            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
            <Property Name="UnifiedAreaRect" Value="{{0.526917,0},{0.414583,0},{0.911497,0},{0.854169,0}}" />
            <Window Type="TaharezLook/Editbox" Name="username" >
                <Property Name="MaxTextLength" Value="1073741823" />
                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
                <Property Name="UnifiedAreaRect" Value="{{0.304069,0},{0.309479,0},{0.932507,0},{0.455214,0}}" />
            </Window>

            </Window>

        </GUILayout >

    可以看到,Layout中是可以有很多不同类型的Window,而Window对应的Type需要在相应的scheme中去匹配,这个以后再说。然后定义Property属性,对应的是一个字典,提供了对CEGUI中不同Type的Property支持。

    可能说到这里会有些混乱,这里只需要简单记得:Window Type="TaharezLook/FrameWindow" 这里指向的是对应的scheme文件中的Type,用于读取scheme中定义的样式;而scheme中的Type里面会有一个类型是指向CEGUI中的Window类型,用于告诉界面这是一个什么样的Window,包括什么属性和方法。

    Layout是表示层的东西,它仅仅用于定义该layout有哪些窗口(这里的窗口可以理解为不同的控件),这些窗口在哪些位置,窗口的基本属性(这些属性主要是提供给CEGUI用于窗口的渲染)。

    第一次写正式的实践文,可能很混乱,等把整个系列都改好了,再重头改一次吧。

 

    

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值