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

PropiedadTipoDescripción
xnumberCoordenada X de la esquina inferior izquierda.
ynumberCoordenada Y de la esquina inferior izquierda.
x1numberCoordenada X del borde derecho (x + width).
y1numberCoordenada Y del borde superior (y + height).
widthnumberAncho del rectángulo.
heightnumberAlto del rectángulo.
positionVector2Vector que representa la posición (x, y).
centerVector2Vector que representa el centro del rectángulo.

Métodos de instancia

MétodoRetornoDescripción
set(x, y, width, height)voidAsigna posición y dimensiones al rectángulo.
equals(rectangle)booleanCompara si dos rectángulos son iguales.
copy(rect)voidCopia las propiedades de otro rectángulo.
intersects(rect)booleanComprueba si este rectángulo se solapa con otro.
contains(rect or vector)booleanComprueba si contiene completamente otro rectángulo o un punto (Vector2).
toString()stringDevuelve 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.