Saltar a contenido

Rectangle

Rectangle

La clase Rectangle representa un rectángulo alineado a los ejes (AABR) definido por su posición, ancho y alto.
La posición representa la esquina inferior izquierda del rectángulo.
Proporciona métodos y propiedades para manipular y consultar la geometría del rectángulo.

Propiedades

Propiedad Tipo Descripción
x number Coordenada X de la esquina inferior izquierda.
y number Coordenada Y de la esquina inferior izquierda.
x1 number Coordenada X del borde derecho (x + width).
y1 number Coordenada Y del borde superior (y + height).
width number Ancho del rectángulo.
height number Alto del rectángulo.
position Vector2 Vector que representa la posición (x, y).
center Vector2 Vector que representa el centro del rectángulo.

Métodos de instancia

Método Retorno Descripción
set(x, y, width, height) void Asigna posición y dimensiones al rectángulo.
equals(rectangle) boolean Compara si dos rectángulos son iguales.
copy(rect) void Copia las propiedades de otro rectángulo.
intersects(rect) boolean Comprueba si este rectángulo se solapa con otro.
contains(rect or vector) boolean Comprueba si contiene completamente otro rectángulo o un punto (Vector2).
toString() string Devuelve una representación en texto del rectángulo.

Ejemplo básico

const rect = new Rectangle(0, 0, 100, 100);

console.log(rect.width); // 100
console.log(rect.height); // 100
console.log(rect.x); // 0
console.log(rect.y); // 0
console.log(rect.x1); // 100
console.log(rect.y1); // 100

console.log(rect.center); // Vector2 { x: 50, y: 50 }

Ejemplo: intersección y contención

const rect1 = new Rectangle(0, 0, 100, 100);
const rect2 = new Rectangle(50, 50, 100, 100);

console.log(rect1.intersects(rect2)); // true

const point = new Vector2(50, 50);
console.log(rect1.contains(point)); // true

const rect3 = new Rectangle(100, 100, 100, 100);
console.log(rect1.contains(rect3)); // false

Notas

  • La posición (x, y) siempre representa la esquina inferior izquierda.
  • Los métodos intersects y contains son fundamentales para detección de colisiones en sistemas físicos y de renderizado.
  • La propiedad center se calcula dinámicamente en cada acceso y no genera nuevas instancias gracias al uso de una referencia privada interna.