Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Rect2¶
A 2D axis-aligned bounding box using floating-point coordinates.
描述¶
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
.
备注
There are notable differences when using this API with C#. See C# API 与 GDScript 的差异 for more information.
教程¶
属性¶
|
||
|
||
|
构造函数¶
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 |
|
运算符¶
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(