Merge pull request #2440 from mitchcurtis/centre

Add a section to size_and_anchors for centering a control in its parent
This commit is contained in:
Max Hilbrunner
2019-05-09 14:49:41 +02:00
committed by GitHub

View File

@@ -1,7 +1,7 @@
.. _doc_size_and_anchors:
Size and anchors
----------------
================
If a game was always going to be run on the same device and at the same
resolution, positioning controls would be a simple matter of setting the
@@ -38,3 +38,28 @@ it, leaving a 20 pixel margin:
.. image:: img/marginaround.png
Centering a control
-------------------
To center a control in its parent, set its anchors to 0.5 and each margin
to half of its relevant dimension. For example, the code below shows how
a TextureRect can be centered in its parent:
::
var rect = TextureRect.new()
rect.texture = load("res://icon.png")
rect.anchor_left = 0.5
rect.anchor_right = 0.5
rect.anchor_top = 0.5
rect.anchor_bottom = 0.5
var texture_size = rect.texture.get_size()
rect.margin_left = -texture_size.x / 2
rect.margin_right = -texture_size.x / 2
rect.margin_top = -texture_size.y / 2
rect.margin_bottom = -texture_size.y / 2
add_child(rect)
Setting each anchor to 0.5 moves the reference point for the margins to
the center of its parent. From there, we set negative margins so that
the control gets its natural size.