Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Rect2¶
A 2D axis-aligned bounding box using floating-point coordinates.
Description¶
The Rect2 built-in Variant type represents an axis-aligned rectangle in a 2D space. It is defined by its position and size, which are Vector2. It is frequently used for fast overlap tests (see intersects). Although Rect2 itself is axis-aligned, it can be combined with Transform2D to represent a rotated or skewed rectangle.
For integer coordinates, use Rect2i. The 3D equivalent to Rect2 is AABB.
Note: Negative values for size are not supported. With negative size, most Rect2 methods do not work correctly. Use abs to get an equivalent Rect2 with a non-negative size.
Note: In a boolean context, a Rect2 evaluates to false
if both position and size are zero (equal to Vector2.ZERO). Otherwise, it always evaluates to true
.
Nota
There are notable differences when using this API with C#. See C# API differences to GDScript for more information.
Tutorials¶
Properties¶
|
||
|
||
|
Constructors¶
Rect2 ( ) |
|
Methods¶
abs ( ) const |
|
get_area ( ) const |
|
get_center ( ) const |
|
grow_individual ( float left, float top, float right, float bottom ) const |
|
has_area ( ) const |
|
intersection ( Rect2 b ) const |
|
intersects ( Rect2 b, bool include_borders=false ) const |
|
is_equal_approx ( Rect2 rect ) const |
|
is_finite ( ) const |
|
Operators¶
operator != ( Rect2 right ) |
|
operator * ( Transform2D right ) |
|
operator == ( Rect2 right ) |
Property Descriptions¶
Vector2 end = Vector2(0, 0)
The ending point. This is usually the bottom-right corner of the rectangle, and is equivalent to position + size
. Setting this point affects the size.
Vector2 position = Vector2(0, 0)
The origin point. This is usually the top-left corner of the rectangle.
Vector2 size = Vector2(0, 0)
The rectangle's width and height, starting from position. Setting this value also affects the end point.
Note: It's recommended setting the width and height to non-negative values, as most methods in Godot assume that the position is the top-left corner, and the end is the bottom-right corner. To get an equivalent rectangle with non-negative size, use abs.
Constructor Descriptions¶
Rect2 Rect2 ( )
Constructs a Rect2 with its position and size set to Vector2.ZERO.
Constructs a Rect2 as a copy of the given Rect2.
Constructs a Rect2 from a Rect2i.
Rect2 Rect2 ( Vector2 position, Vector2 size )
Constructs a Rect2 by position
and size
.
Rect2 Rect2 ( float x, float y, float width, float height )
Constructs a Rect2 by setting its position to (x
, y
), and its size to (width
, height
).
Method Descriptions¶
Rect2 abs ( ) const
Returns a Rect2 equivalent to this rectangle, with its width and height modified to be non-negative values, and with its position being the top-left corner of the rectangle.
var rect = Rect2(25, 25, -100, -50)
var absolute = rect.abs() # absolute is Rect2(-75, -25, 100, 50)
var rect = new Rect2(25, 25, -100, -50);
var absolute = rect.Abs(); // absolute is Rect2(-75, -25, 100, 50)
Note: It's recommended to use this method when size is negative, as most other methods in Godot assume that the position is the top-left corner, and the end is the bottom-right corner.
bool encloses ( Rect2 b ) const
Returns true
if this rectangle completely encloses the b
rectangle.
Rect2 expand ( Vector2 to ) const
Returns a copy of this rectangle expanded to align the edges with the given to
point, if necessary.
var rect = Rect2(0, 0, 5, 2)
rect = rect.expand(Vector2(10, 0)) # rect is Rect2(0, 0, 10, 2)
rect = rect.expand(Vector2(-5, 5)) # rect is Rect2(-5, 0, 10, 5)
var rect = new Rect2(0, 0, 5, 2);
rect = rect.Expand(new Vector2(10, 0)); // rect is Rect2(0, 0, 10, 2)
rect = rect.Expand(new Vector2(-5, 5)); // rect is Rect2(-5, 0, 10, 5)
float get_area ( ) const
Returns the rectangle's area. This is equivalent to size.x * size.y
. See also has_area.
Vector2 get_center ( ) const
Returns the center point of the rectangle. This is the same as position + (size / 2.0)
.
Rect2 grow ( float amount ) const
Returns a copy of this rectangle extended on all sides by the given amount
. A negative amount
shrinks the rectangle instead. See also grow_individual and grow_side.