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

Vector2i

end

Vector2i(0, 0)

Vector2i

position

Vector2i(0, 0)

Vector2i

size

Vector2i(0, 0)

Constructores

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étodos

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

Operadores

bool

operator !=(right: Rect2i)

bool

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

Rect2i Rect2i() 🔗

Construye un Rect2i con su position y size establecidos en Vector2i.ZERO.


Rect2i Rect2i(from: Rect2i)

Construye un Rect2i como copia del Rect2i dado.


Rect2i Rect2i(from: Rect2)

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

Rect2i abs() const 🔗

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)

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)

int get_area() const 🔗

Devuelve el área del rectángulo. Esto es equivalente a size.x * size.y. Véase también has_area().


Vector2i get_center() const 🔗

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)

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().


bool has_area() const 🔗

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)

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.