Rect2i
Un cuadro delimitador 2D alineado con los ejes que utiliza coordenadas enteras.
Descripción
El tipo Variant incorporado Rect2i representa un rectángulo alineado con los ejes en un espacio 2D, utilizando coordenadas enteras. Se define por su position y su size, que son Vector2i. Debido a que no rota, se utiliza con frecuencia para pruebas rápidas de superposición (véase intersects()).
Para coordenadas de punto flotante, consulta Rect2.
Nota: No se admiten valores negativos para size. Con un tamaño negativo, la mayoría de los métodos Rect2i no funcionan correctamente. Utiliza abs() para obtener un Rect2i equivalente con un tamaño no negativo.
Nota: En un contexto booleano, un Rect2i se evalúa como false si tanto position como size son cero (igual a Vector2i.ZERO). De lo contrario, siempre se evalúa como true.
Nota
Hay diferencias notables cuando usa esta API con C#. Véase Diferencias de la API de C# con GDScript para más información.
Tutoriales
Propiedades
|
||
|
||
|
Constructores
Rect2i() |
|
Métodos
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 |
|
Operadores
operator !=(right: Rect2i) |
|
operator ==(right: Rect2i) |
Descripciones de Propiedades
Vector2i end = Vector2i(0, 0) 🔗
El punto final. Este es usualmente la esquina inferior derecha del rectángulo, y es equivalente a position + size. Establecer este punto afecta el size.
Vector2i position = Vector2i(0, 0) 🔗
El punto de origen. Este es usualmente la esquina superior izquierda del rectángulo.
Vector2i size = Vector2i(0, 0) 🔗
La anchura y la altura del rectángulo, empezando desde position. Establecer este valor también afecta al punto end.
Nota: Se recomienda establecer la anchura y la altura a valores no negativos, ya que la mayoría de los métodos en Godot asumen que la position es la esquina superior izquierda, y el end es la esquina inferior derecha. Para obtener un rectángulo equivalente con un tamaño no negativo, utiliza abs().
Descripciones de Constructores
Construye un Rect2i con su position y size establecidos en Vector2i.ZERO.
Construye un Rect2i como copia del Rect2i dado.
Construye un Rect2i a partir de un Rect2. Las coordenadas de punto flotante se truncan.
Rect2i Rect2i(position: Vector2i, size: Vector2i)
Construye un Rect2i por position y size.
Rect2i Rect2i(x: int, y: int, width: int, height: int)
Construye un Rect2i estableciendo su position en (x, y), y su size en (width, height).
Descripciones de Métodos
Devuelve un Rect2i equivalente a este rectángulo, con su anchura y altura modificadas para que sean valores no negativos, y con su position siendo la esquina superior izquierda del rectángulo.
var rect = Rect2i(25, 25, -100, -50)
var absolute = rect.abs() # absolute es Rect2i(-75, -25, 100, 50)
var rect = new Rect2I(25, 25, -100, -50);
var absolute = rect.Abs(); // absolute es Rect2I(-75, -25, 100, 50)
Nota: Se recomienda utilizar este método cuando size es negativo, ya que la mayoría de los otros métodos en Godot asumen que la position es la esquina superior izquierda, y el end es la esquina inferior derecha.
bool encloses(b: Rect2i) const 🔗
Devuelve true si este Rect2i encierra completamente a otro.
Rect2i expand(to: Vector2i) const 🔗
Devuelve una copia de este rectángulo expandida para alinear los bordes con el punto to dado, si es necesario.
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)
Devuelve el área del rectángulo. Esto es equivalente a size.x * size.y. Véase también has_area().
Devuelve el punto central del rectángulo. Esto es lo mismo que position + (size / 2).
Nota: Si el size es impar, el resultado se redondeará hacia 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 🔗
Devuelve una copia de este rectángulo con sus lados left, top, right y bottom extendidos por las cantidades dadas. Los valores negativos encogen los lados, en su lugar. Véase también grow() y grow_side().
Rect2i grow_side(side: int, amount: int) const 🔗
Devuelve una copia de este rectángulo con su side extendido por la amount dada (véase las constantes Side). Una amount negativa encoge el rectángulo, en su lugar. Véase también grow() y grow_individual().
Devuelve true si este rectángulo tiene un ancho y un alto positivos. Véase también get_area().
bool has_point(point: Vector2i) const 🔗
Devuelve true si el rectángulo contiene el point dado. Por convención, los puntos en los bordes derecho e inferior no están incluidos.
Nota: Este método no es fiable para Rect2i con un size negativo. Usa abs() primero para obtener un rectángulo válido.
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 🔗
Devuelve true si este rectángulo se superpone con el rectángulo b. Los bordes de ambos rectángulos están excluidos.
Rect2i merge(b: Rect2i) const 🔗
Devuelve un Rect2i que encierra tanto a este rectángulo como a b alrededor de los bordes. Véase también encloses().
Descripciones de Operadores
bool operator !=(right: Rect2i) 🔗
Devuelve true si la position o el size de ambos rectángulos no son iguales.
bool operator ==(right: Rect2i) 🔗
Devuelve true si tanto position como size de los rectángulos son iguales, respectivamente.