CEGUI 使用方法 六

2021-04-30 20:28:56 字數 1745 閱讀 8786

統一度量系統使用指南

注意:此教程僅適用於cegui >= 0.4.0

統一度量系統使得我們可以用相對部分和絕對部分共同來表示乙個座標或大小。這給視窗布局帶來了極大的方便。比如:你可以用相對尺寸來表示高度,使用絕對大小表示寬度,或者混合使用。

統一度量系統共有三種形式:

* udim      :  簡單的一維

* uvector2  :  由兩個udim組成的二維向量

* urect     :  用四個udim表示乙個矩形,依次為:左,上,右,下

udim

udim是最簡單的了

格式為 :  

例如  : 

格式為 :

例如 :

父視窗的值乘以「scale」然後加上offset就是最後的結果(單位都是畫素)。例如:假如上面的例子是視窗的unifiedwidth屬性值,我們將得到和其父視窗一樣寬的視窗。

另乙個例子:

這將使得到的視窗寬度為其父視窗的一半加上25畫素。

使用單一udim作為其值的屬性有:

* unifiedxposition

* unifiedyposition

* unifiedwidth

* unifiedheight

uvector2

uvector2是用來表示位置和大小的。

格式為 :, }  

例如  :, } 

格式為 :, }

例如 :, }

uvector2中包含的兩個udim很像。還是用例子說明吧:假如上面的例子代表視窗的unifiedsize屬性,我們將得到和它的父視窗一樣大小的視窗。

,} 

,}上例將產生乙個和其父視窗一樣寬,但是高度固定為100畫素的視窗。

使用uvector2作為其值的屬性有:

* unifiedposition

* unifiedsize

* unifiedminsize

* unifiedmaxsize

urect

最後的一種是urect。它有點特殊,它定義了左,上,右,下四個座標,而不是大小或位置。由於引數很多,我將用「ls」代替「left-scale」,用「to」代替「top-offset」等等。

格式為 :,,,}  

例如  :,,,} 

格式為 :,,,}

例如 :,,,}

上述**是defaultwindow型別視窗的預設矩形。它將覆蓋其父視窗的整個區域。只有乙個屬性使用urect值 ---- unifiedarearect。

我們定義矩形區域而不是其大小的做法是很聰明的。比如:假如我們想使乙個視窗覆蓋它的父視窗,但要為父視窗的四邊分別留出10畫素的大小,**可以這樣寫:

,,,} 

,,,}

此例可以看出,絕對部分可以取負數。

xml中的應用舉例

x-position:父視窗寬度的10% + 10畫素

y-position:父視窗的高度 - 30畫素

width:父視窗寬度的60% + 5畫素

height:父視窗高度的30% + 20畫素

x-position:父視窗寬度的25% - 5畫素

x-position:父視窗寬度的10%

y-position:父視窗高度的10%

width:父視窗寬度的80%

height:父視窗高度的80%

以前,我曾幻想自己做所有東西,包括遊戲gui。現在,我才發現這種想法多麼幼稚。更體會到開源精神的偉大!

iOS學習 六 protocol的使用方法

1 新建乙個objective c file,filetype選擇protocol 2 在新建的protocol中宣告幾個方法,這裡有幾個關鍵字需要注意 required 表示方法必須要被實現 optional 表示方法可以不被實現 預設是需要被實現 import protocol myprotoc...

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

boost thread的六種使用方法總結

boost thread有兩個建構函式 1 thread 構造乙個表示當前執行執行緒的執行緒物件 2 explicit thread const boost function0 threadfunc boost function0可以簡單看為 乙個無返回 返回void 無引數的函式。這裡的函式也可以...