Ogre Overlay标准表层元素

来源:百度文库 编辑:神马文学网 时间:2024/04/29 21:28:41
 

3.4.2 标准表层元素

来自:http://wiki.ogrecn.com/wiki/

虽然OGRE的表层元素类和表层容器类被设计为是可供应用程序开发人员扩展的,但是有一些元素是Ogre本身自带的。包括:

  • Panel
  • BorderPanel
  • TextArea

这部分介绍了如何在一个.overlay脚本中定义它们的属性,你也可以在代码中改变这些属性。调用 setParameter(paramname, value)定义属性。你可以通过StringConverter类将你要用的类型转换为字符串,或将字符串转换为你要的类型。


Panel(容器)

这是你可使用的最bog-standard容器。它是一块能够包含其他元素(或容器)的矩形区域,可以有背景也可以没有背景,随你的便。背景材质由材质属性决定,但是只有当透明处于关闭状态时,才会显示。

属性:

transparent
如果设置为true那么面板就是透明的,且面板自己不需渲染,则它就被用来划分自己孩子的等级。
tiling
设置材质的纹理在整个面板上X和Y方向贴图的次数。是指纹理层,从0到此材质的纹理层数-1。依靠设置每层贴图,你可以为你的面板创建一些漂亮的多重贴图的背景,当你变化其中一层时,效果尤其好。
uv_coords
设置要用到这个面板上的纹理的坐标。

BorderPanel(容器)

这是一种稍微更高级的面板,用以替代单一的平板面板,有一个单独的可以随着面板调节大小的边框。为了做到这一点,它采用了一种类似在HTML表格中 使用边框的方法:面板被分为9块区域进行渲染,以主材质渲染中心区域(如Panel)以及单独的边界材质渲染外部8个区域(四角和四边)。边角分开渲染的 好处是边纹理可以被设计得笔直伸展而没有转角拐弯,意思就是说一个纹理可以用在任意大小的面板上。

属性:

border_size
每边边框按屏幕大小的比例尺寸。这令你可以按你的喜好设置不同尺寸的边框,或者你可以使用相同的数值4倍去创建一个固定尺寸的边框。
border_material
用于边框的材质名。这个材质通常不同于用于中心区域的材质,因为中心区域经常是平铺的,也就是说你不能将边框区域放在中心区域那里。你必须将所有你需要的边角图像放到一个单独的纹理中。
border_topleft_uv
[及border_topright_uv,border_bottomleft_uv,border_bottomright_uv];被用作边框的角落区域的纹理坐标。需要4个坐标,2个为区域的左上角,2个为区域的右下角。
border_left_uv
[及border_right_uv,border_top_uv,border_bottom_uv];被用作边框的边区域纹理坐标。 需要四个坐标,2个为左上角,2个为右下角。你应该注意设计一下纹理,以便左边和右边可以被垂直拉伸/压扁,而顶边和底边可以被水平拉伸/压扁,且无副作 用。

TextArea(元素)

这是一个可以用来渲染文本的普通元素。它使用可以用FontManager和FontClass类的代码定义的字体,或者事先预备的.fontdef文件。详情请参看字体定义部分。

属性:

font_name
要使用的字体名。这个字体必须被定义在一个.fontdef文件中并确保在脚本使用时它是可用的。
char_height
字母的高度占全屏高度的百分比。虽然因为OGRE支持比例字体字母宽度可能不尽相同,但是它会基于这个常量高度。
colour
渲染文字用的一个单色。通常,字体被定义成黑白单色;利用这一属性,你可以把字体弄上漂亮的颜色,让多重不同颜色的文本区域用上相同的纹理。颜色应当全都用0到1之间的值表示。如果你使用已经预先画好颜色的字体,那么你不必再使用这一属性。
colour_bottom / colour_top
作为单色的一种替换选择,你可以使文本从上到下使用不同的颜色,从而创造出一种非常漂亮的渐变效果。