CEGUI:LookNFeel
来源:互联网 发布:c语言0|1 编辑:程序博客网 时间:2024/05/16 16:12
LookNFeel:CEGUI控件外观文件。
CEGUI提供了一些定义好的控件:按钮、列表、文本框。
要使用这些控件,我们必须为其提供一些基本的外观属性信息。
比如一个按钮,它有几种显示状态:通常、获得焦点、按下、禁用。而每一种状态下都有各自的位置、大小属性。
LookNFeel都是为了定义这些属性而存在的。下面做简单的介绍。
在开始之前,你首先要了解CEGUI使用的坐标系统:统一坐标系统
相对坐标、绝对坐标: 事实上我们在为窗口定义位置属性的时候,系统用的都是绝对坐标。相对坐标只是允许我们提供一个scale,系统会自动使用这个值为进行绝对坐标的计算。
统一坐标系统:CEGUI在定义窗口位置和大小的时候,同时使用了这两种坐标表示法来表示。
1、UDim:它用来表示一个数值。
scale:相对坐标,读取父窗口坐标值,在父坐标值的基础上,按传入的参数进行比例计算。
offset:在参数1计算后的结果上,再以传入的数值进行位置偏移。
例子可以以表示为,以父窗口的60%的位置上偏移10个单位。如果读取的父窗口的数值为100,则为 100*0.6+10 = 70。虽然它的最终位置会随着父窗口的位置移动,但一定会有一个10个单位的偏移。
2、UVector2:表示一个点,我们都知道,在平面上一个点要由x、y两个数值来表示。
{{''x-scale'',''x-offset''},{''y-scale'',''y-offset''}} 例: {{1,0},{1,0}}
第一个点为X,第二个点为Y。像例子中那样传参数,那么你定义的点人位置,在父窗口的右下角。
3、URect:表示一个矩形区域。URect用两个点来描述一个矩形。分别是一个矩形的左上角和右下角。表示右下角的两个数值,可以看作是宽度和高度值。这与一般的二维图形库中的Rect的定义并没有什么不同,只是使用UDim来计算每个点。
{{ls,lo},{ts,to},{rs,ro},{bs,bo}} 例1: {{0,0},{0,0},{1,0},{1,0}} 例2:{{0,10},{0,10},{1,-10},{1,-10}}
如果按例子1中的数值传参,会得到一个与父窗口完全重合的窗口。
例子2会在父窗口的基础上,留下10个单位的边框。
LookNFeel XML标签
CEGUI通过读取XLM文件,来读取LookNFeel的各种属性信息。定义这些属性标签并不困难,只要熟悉了每个标签的意义就可以了。和写XHTML没多大的不同。
以下,通过一个简单的例子来演示LookNFeel的基本用法。这个例子使用staticimage控件来演示。很简单,他只渲染一张图片,不处理任何的用户键盘或鼠标行为。
你可以把这段代码加入到你的lookNFeel中去。更改一下<ImageDim>与<Image>里的imageset与image的属性。用你自己定义的图片。这段代码会自动读取你定义的图片的宽度与高度信息。
<WidgetLook name="MYUI/PlayerPanelLeft"> </WidgetLook>
每一个控件外观的定义,都要放在这个标签对中。
还记得Scheme的定义吗?
<WidgetLook >的name就是与LookNFeel对应的。
跳过中间的标签,看下面的 <StateImagery name="Enabled"></StateImagery>标签。
Scheme中<FalagardMapping>的Rendererr属性定义了窗口的渲染方式。
而系统就是通过<StateImagery>与之前行连接。
而哪一种Render需要用到哪些<StateImagery>,官方提供了详细的说明,我们在使用的时候,只要查找并给于相应的定义就可以以了。
http://cegui.org.uk/docs/current/fal_man.html
<ImagerySection name="main"> </ImagerySection>这个标签对就是为<StateImagery>提供渲染所用的具体属性信息的。
UDim:{''scale'',''offset''} 例: {0.6,10}
- CEGUI:LookNFeel
- CEGUI:LookNFeel .
- 【CEGUI】CEGUI:looknfeel
- cegui的looknfeel配置
- cegui
- CEGUI
- CEGUI
- CEGUI
- looknfeel中的Button控件的学习
- [CEGUI]CEGUI介绍
- 学习CEGUI
- CEGUI DEMO
- CEGUI小结
- cegui告捷
- CEGUI小结
- CEGUI::String
- CEGUI学习
- cegui优化
- 的撒大大所的撒旦
- 求方正文杰A1000打印机的清零软件
- 【转】NFS服务器的安装
- SVN的子命令SVN merge详解,应用两组源文件的差别到工作拷贝路径
- 一些SQL語句
- CEGUI:LookNFeel
- sicily 1210
- Zenoss快速指导 IT Managerment Monitor
- [C#][转载] .Net应该学什么怎么学(感觉适合新手,对了解整个.NET知识结构有帮助)
- 年度总结之十:防外挂
- ListView 滚动翻页/滚动加载(类似QQ空间滚动加载页面)
- 精选微软等公司经典的算法面试100题009
- Struts2中radio标签使用示例
- 剽窃核心编程 共享区段共享数据 另外还有一个不太明白的 RegisterWindowMessage