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.

Rect2i

Une boîte délimitante 2D alignée sur les axes utilisant des coordonnées entières.

Description

Le type Variant intégré Rect2i représente un rectangle aligné sur les axes dans un espace 2D, en utilisant des coordonnées entières. Il est défini par sa position position et sa taille size, qui sont des Vector2i. Comme il ne tourne pas, il est fréquemment utilisé pour les tests de superposition rapide (voir intersects()).

Pour des coordonnées avec des flottants, utilisez Rect2.

Note : Les valeurs négatives pour size ne sont pas supportées. Avec une taille négative, la plupart des méthodes de Rect2i ne fonctionnent pas correctement. Utilisez abs() pour obtenir un Rect2i équivalent avec une taille non négative.

Note : Dans un contexte booléen, un Rect2i évalue à false si les deux valeurs position et size sont nulles (équivalent à Vector2i.ZERO). Sinon, il évalue toujours à true.

Note

Il y a des différences notables dans l'utilisation de cette API en C#. Voir Différences de l'API C# par rapport à GDScript pour plus d'informations.

Tutoriels

Propriétés

Vector2i

end

Vector2i(0, 0)

Vector2i

position

Vector2i(0, 0)

Vector2i

size

Vector2i(0, 0)

Constructeurs

Rect2i

Rect2i()

Rect2i

Rect2i(from: Rect2i)

Rect2i

Rect2i(from: Rect2)

Rect2i

Rect2i(position: Vector2i, size: Vector2i)

Rect2i

Rect2i(x: int, y: int, width: int, height: int)

Méthodes

Rect2i

abs() const

bool

encloses(b: Rect2i) const

Rect2i

expand(to: Vector2i) const

int

get_area() const

Vector2i

get_center() const

Rect2i

grow(amount: int) const

Rect2i

grow_individual(left: int, top: int, right: int, bottom: int) const

Rect2i

grow_side(side: int, amount: int) const

bool

has_area() const

bool

has_point(point: Vector2i) const

Rect2i

intersection(b: Rect2i) const

bool

intersects(b: Rect2i) const

Rect2i

merge(b: Rect2i) const

Opérateurs

bool

operator !=(right: Rect2i)

bool

operator ==(right: Rect2i)


Descriptions des propriétés

Vector2i end = Vector2i(0, 0) 🔗

Le point de fin. Il s'agit généralement du coin inférieur droit du rectangle, et est équivalent à position + taille. Définir ce point affecte la taille size.


Vector2i position = Vector2i(0, 0) 🔗

Le point d'origine. Il s'agit généralement du coin supérieur gauche du rectangle.


Vector2i size = Vector2i(0, 0) 🔗

La largeur et la hauteur du rectangle, à partir du point position. Définir cette valeur affecte également le point end.

Note : Il est recommandé de fixer la largeur et la hauteur à des valeurs non négatives, car la plupart des méthodes de Godot supposent que position est le coin supérieur gauche, et end le coin inférieur droit. Pour obtenir un rectangle équivalent avec une taille non négative, utilisez abs().


Descriptions des constructeurs

Rect2i Rect2i() 🔗

Constructs a Rect2i with its position and size set to Vector2i.ZERO.


Rect2i Rect2i(from: Rect2i)

Construit un Rect2i en tant que copie du Rect2i donné.


Rect2i Rect2i(from: Rect2)

Constructs a Rect2i from a Rect2. The floating-point coordinates are truncated.


Rect2i Rect2i(position: Vector2i, size: Vector2i)

Constructs a Rect2i by position and size.


Rect2i Rect2i(x: int, y: int, width: int, height: int)

Constructs a Rect2i by setting its position to (x, y), and its size to (width, height).


Descriptions des méthodes

Rect2i abs() const 🔗

Returns a Rect2i 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 = Rect2i(25, 25, -100, -50)
var absolute = rect.abs() # absolute is Rect2i(-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(b: Rect2i) const 🔗

Returns true if this Rect2i completely encloses another one.


Rect2i expand(to: Vector2i) const 🔗

Returns a copy of this rectangle expanded to align the edges with the given to point, if necessary.

var rect = Rect2i(0, 0, 5, 2)

rect = rect.expand(Vector2i(10, 0)) # rect is Rect2i(0, 0, 10, 2)
rect = rect.expand(Vector2i(-5, 5)) # rect is Rect2i(-5, 0, 15, 5)

int get_area() const 🔗

Renvoie l'aire du rectangle. Ceci est équivalent à size.x * size.y. Voir aussi has_area().


Vector2i get_center() const 🔗

Returns the center point of the rectangle. This is the same as position + (size / 2).

Note: If the size is odd, the result will be rounded towards position.


Rect2i grow(amount: int) 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().

var a = Rect2i(4, 4, 8, 8).grow(4) # a is Rect2i(0, 0, 16, 16)
var b = Rect2i(0, 0, 8, 4).grow(2) # b is Rect2i(-2, -2, 12, 8)

Rect2i grow_individual(left: int, top: int, right: int, bottom: int) const 🔗

Renvoie une copie de ce rectangle avec ses côtés haut, bas, gauche droite étendus par les montants respectifs left, top, right et bottom donnés. Les valeurs négatives réduisent les côtés à la place. Voir aussi grow() et grow_side().


Rect2i grow_side(side: int, amount: int) const 🔗

Renvoie une copie de ce rectangle avec le côté side étendus par les le montant amount donné (voir les constantes Side). Une valeur amount négative rétrécit le rectangle à la place. Voir aussi grow() et grow_side().


bool has_area() const 🔗

Renvoie true si ce rectangle a une largeur et une hauteur positives. Voir aussi get_area().


bool has_point(point: Vector2i) const 🔗

Returns true if the rectangle contains the given point. By convention, points on the right and bottom edges are not included.

Note: This method is not reliable for Rect2i with a negative size. Use abs() first to get a valid rectangle.


Rect2i intersection(b: Rect2i) const 🔗

Returns the intersection between this rectangle and b. If the rectangles do not intersect, returns an empty Rect2i.

var a = Rect2i(0, 0, 5, 10)
var b = Rect2i(2, 0, 8, 4)

var c = a.intersection(b) # c is Rect2i(2, 0, 3, 4)

Note: If you only need to know whether two rectangles are overlapping, use intersects(), instead.


bool intersects(b: Rect2i) const 🔗

Returns true if this rectangle overlaps with the b rectangle. The edges of both rectangles are excluded.


Rect2i merge(b: Rect2i) const 🔗

Returns a Rect2i that encloses both this rectangle and b around the edges. See also encloses().


Descriptions des opérateurs

bool operator !=(right: Rect2i) 🔗

Returns true if the position or size of both rectangles are not equal.


bool operator ==(right: Rect2i) 🔗

Returns true if both position and size of the rectangles are equal, respectively.