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...
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
|
||
|
||
|
Constructeurs
Rect2i() |
|
Méthodes
abs() const |
|
get_area() const |
|
get_center() const |
|
grow_individual(left: int, top: int, right: int, bottom: int) const |
|
has_area() const |
|
intersection(b: Rect2i) const |
|
intersects(b: Rect2i) const |
|
Opérateurs
operator !=(right: Rect2i) |
|
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
Constructs a Rect2i with its position and size set to Vector2i.ZERO.
Construit un Rect2i en tant que copie du Rect2i donné.
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
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)
var rect = new 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)
var rect = new Rect2I(0, 0, 5, 2);
rect = rect.Expand(new Vector2I(10, 0)); // rect is Rect2I(0, 0, 10, 2)
rect = rect.Expand(new Vector2I(-5, 5)); // rect is Rect2I(-5, 0, 15, 5)
Renvoie l'aire du rectangle. Ceci est équivalent à size.x * size.y. Voir aussi has_area().
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)
var a = new Rect2I(4, 4, 8, 8).Grow(4); // a is Rect2I(0, 0, 16, 16)
var b = new 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().
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)
var a = new Rect2I(0, 0, 5, 10);
var b = new Rect2I(2, 0, 8, 4);
var c = rect1.Intersection(rect2); // 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.