Vector2

Vector2 representa un vector bidimensional con componentes x e y. Se usa en todo el motor para posiciones, direcciones, velocidades y otras magnitudes 2D.

import { Vector2 } from "angry-pixel";

const position = new Vector2(100, 50);
const zero = new Vector2(); // (0, 0)

Propiedades

PropiedadTipoDescripción
xnumberLa componente x.
ynumberLa componente y.
magnitudenumberLa longitud del vector.
directionVector2El vector unitario que apunta en la misma dirección.

Métodos de instancia

MétodoDescripción
set(x, y)Establece las componentes x e y.
copy(vector)Copia las componentes de otro vector.
clone()Devuelve un nuevo vector con las mismas componentes.
equals(vector)Devuelve true si ambos vectores tienen las mismas componentes.
distance(vector)Devuelve la distancia a otro vector.

Métodos estáticos

Las operaciones estáticas escriben su resultado en un vector de salida pasado como primer argumento y lo devuelven. Reutilizar un vector de salida evita reservar uno nuevo en cada frame.

MétodoDescripción
Vector2.add(out, a, b)Suma a y b.
Vector2.subtract(out, a, b)Resta b de a.
Vector2.scale(out, a, scalar)Escala a por un escalar.
Vector2.unit(out, a)El vector unitario (normalizado) de a.
Vector2.normal(out, a)El vector normal (perpendicular) de a.
Vector2.round(out, a)Redondea las componentes de a.
Vector2.floor(out, a)Aplica el suelo (floor) a las componentes de a.
Vector2.ceil(out, a)Aplica el techo (ceil) a las componentes de a.
Vector2.dot(a, b)Devuelve el producto escalar de a y b.
Vector2.cross(a, b)Devuelve el producto vectorial de a y b.
const a = new Vector2(2, 1);
const b = new Vector2(3, 2);
const result = new Vector2();

Vector2.add(result, a, b);
// result.x === 5, result.y === 3