tutorial_gui_repositioning - seraph526/godot-se GitHub Wiki

尺寸和锚点 (Size and Anchors)

如果游戏通常只是在相同的设备上,以相同的分辨率运行,controls的布局,设置每个元件的位置和大小,将会是件简单的事。但很少是这样的情况。

现今,只有TVs有标准的分辨率和长宽比。其他的调协,从电脑显示器到平板电脑,到笔记本和移动电话有不同的分辨率和长宽比。

有几种解决此问题的办法,但是,现在,让我们只是设想屏幕分辨率改变了,controls需要被重新定位。一些需要跟随动于屏幕底部,另一些要置于屏幕顶部,或者屏幕的左右两侧。

这些是通过设计controls的"margin"属性实现的。每个control有4个margin属性:left,right,bottom和top.默认情况下,所有的属性都是以像素为单位,相对于父级左上角的距离或者(没有父级的control)则是viewport.

当水平(左,右)和或垂直(上,下)锚点修改为END属性,那么margin值是相对于父级control或viewport的右下角。

以下是设置以父级右下角扩展的例子,当重定义父级的尺寸时,control会自动重新定位,距离边距保持在20 pixel。

最后,也有一个ratio选项,0代表左,1代表右,其他任何中间值代表相应的位置比例。

容器 (Containers)

这里有一个十分困难的问题,有两种解决方案:

style boxes

title menu example

containers

theme

focus