cegui 6
统一度量系统使用指南
注意:此教程仅适用于CEGUI >= 0.4.0
统一度量系统使得我们可以用相对部分和绝对部分共同来表示一个坐标或大小。这给窗口布局带来了极大的方便。比如:你可以用相对尺寸来表示高度,使用绝对大小表示宽度,或者混合使用。
统一度量系统共有三种形式
* UDim : 简单的一维 * UVector2 : 由两个UDim组成的二维向量 * URect : 用四个UDim表示一个矩形,依次为:左,上,右,下
UDim
UDim是最简单的了- 格式为 :{scale, offset}
- 例如 :{1,0}
另一个例子:
{0.5, 25}这将使得到的窗口宽度为其父窗口的一半加上25像素。
使用单一UDim作为其值的属性有:
* UnifiedXPosition * UnifiedYPosition * UnifiedWidth * UnifiedHeight
UVector2
UVector2是用来表示位置和大小的。- 格式为 :{{x-scale, x-offset}, {y-scale, y-offset}}
- 例如 :{{1, 0}, {1, 0}}
- {{1,0},{0,100}}
使用Uvector2作为其值的属性有:
* UnifiedPosition * UnifiedSize * UnifiedMinSize * UnifiedMaxSize
URect
最后的一种是URect。它有点特殊,它定义了左,上,右,下四个坐标,而不是大小或位置。由于参数很多,我将用“ls”代替“left-scale”,用“to”代替“top-offset”等等。- 格式为 :{{ls,lo},{ts,to},{rs,ro},{bs,bo}}
- 例如 :{{0,0},{0,0},{1,0},{1,0}}
我们定义矩形区域而不是其大小的做法是很聪明的。比如:假如我们想使一个窗口覆盖它的父窗口,但要为父窗口的四边分别留出10像素的大小,代码可以这样写:
- {{0,10},{0,10},{1,-10},{1,-10}}
XML中的应用举例
- <property name="UnifiedPosition" value="{{0.1,10},{1.0,-30}}">
- </property>
Y-position:父窗口的高度 - 30像素
- <property name="UnifiedSize" value="{{0.6,5},{0.3,20}}">
- </property>
Height:父窗口高度的30% + 20像素
- <property name="UnifiedXPosition" value="{0.25,-5}">
- </property>
- <property name="UnifiedAreaRect" value="{{0.1,0},{0.1,0},{0.9,0},{0.9,0}}">
- </property>
Y-position:父窗口高度的10%
Width:父窗口宽度的80%
Height:父窗口高度的80%