Vector2i

Un vector 2D que utiliza coordenadas enteras.

Descripción

Una estructura de 2 elementos que se puede utilizar para representar coordenadas de cuadrícula 2D o cualquier otro par de enteros.

Utiliza coordenadas enteras y, por lo tanto, es preferible a Vector2 cuando se requiere una precisión exacta. Ten en cuenta que los valores están limitados a 32 bits y, a diferencia de Vector2, esto no se puede configurar con una opción de compilación del motor. Utiliza int o PackedInt64Array si se necesitan valores de 64 bits.

Nota: En un contexto booleano, un Vector2i se evaluará como false si es igual a Vector2i(0, 0). De lo contrario, un Vector2i siempre se evaluará como true.

Tutoriales

Propiedades

int

x

0

int

y

0

Constructores

Vector2i

Vector2i()

Vector2i

Vector2i(from: Vector2i)

Vector2i

Vector2i(from: Vector2)

Vector2i

Vector2i(x: int, y: int)

Métodos

Vector2i

abs() const

float

aspect() const

Vector2i

clamp(min: Vector2i, max: Vector2i) const

Vector2i

clampi(min: int, max: int) const

int

distance_squared_to(to: Vector2i) const

float

distance_to(to: Vector2i) const

float

length() const

int

length_squared() const

Vector2i

max(with: Vector2i) const

int

max_axis_index() const

Vector2i

maxi(with: int) const

Vector2i

min(with: Vector2i) const

int

min_axis_index() const

Vector2i

mini(with: int) const

Vector2i

sign() const

Vector2i

snapped(step: Vector2i) const

Vector2i

snappedi(step: int) const

Operadores

bool

operator !=(right: Vector2i)

Vector2i

operator %(right: Vector2i)

Vector2i

operator %(right: int)

Vector2i

operator *(right: Vector2i)

Vector2

operator *(right: float)

Vector2i

operator *(right: int)

Vector2i

operator +(right: Vector2i)

Vector2i

operator -(right: Vector2i)

Vector2i

operator /(right: Vector2i)

Vector2

operator /(right: float)

Vector2i

operator /(right: int)

bool

operator <(right: Vector2i)

bool

operator <=(right: Vector2i)

bool

operator ==(right: Vector2i)

bool

operator >(right: Vector2i)

bool

operator >=(right: Vector2i)

int

operator [](index: int)

Vector2i

operator unary+()

Vector2i

operator unary-()


Enumeraciones

enum Axis: 🔗

Axis AXIS_X = 0

Valor enumerado para el eje X. Devuelto por max_axis_index() y min_axis_index().

Axis AXIS_Y = 1

Valor enumerado para el eje Y. Devuelto por max_axis_index() y min_axis_index().


Constantes

ZERO = Vector2i(0, 0) 🔗

Vector cero, un vector con todos los componentes ajustados a 0.

ONE = Vector2i(1, 1) 🔗

Un vector, un vector con todos los componentes ajustados a 1.

MIN = Vector2i(-2147483648, -2147483648) 🔗

Vector mínimo, un vector con todos los componentes iguales a INT32_MIN. Se puede utilizar como un equivalente entero negativo de Vector2.INF.

MAX = Vector2i(2147483647, 2147483647) 🔗

Vector máximo, un vector con todos los componentes iguales a INT32_MAX. Se puede utilizar como un equivalente entero de Vector2.INF.

LEFT = Vector2i(-1, 0) 🔗

Vector de la unidad izquierda. Representa la dirección de la izquierda.

RIGHT = Vector2i(1, 0) 🔗

Vector de la unidad derecha. Representa la dirección de la derecha.

UP = Vector2i(0, -1) 🔗

Vector de la unidad superior. Y está abajo en 2D, por lo que este vector apunta -Y.

DOWN = Vector2i(0, 1) 🔗

Vector de la unidad de descenso. Y está abajo en 2D, así que este vector apunta a +Y.


Descripciones de Propiedades

int x = 0 🔗

El componente X del vector. También se puede acceder utilizando la posición del índice [0].


int y = 0 🔗

El componente Y del vector. También se puede acceder usando la posición del índice [1].


Descripciones de Constructores

Vector2i Vector2i() 🔗

Construye un Vector2i inicializado por defecto con todos los componentes establecidos en 0.


Vector2i Vector2i(from: Vector2i)

Construye un Vector2i como una copia del Vector2i dado.


Vector2i Vector2i(from: Vector2)

Construye un nuevo Vector2i a partir del Vector2 dado truncando las partes fraccionarias de los componentes (redondeando hacia cero). Para un comportamiento diferente, considera pasar el resultado de Vector2.ceil(), Vector2.floor() o Vector2.round() a este constructor en su lugar.


Vector2i Vector2i(x: int, y: int)

Construye un nuevo Vector2i a partir de los x y y dados.


Descripciones de Métodos

Vector2i abs() const 🔗

Devuelve un nuevo vector con todos los componentes en valores absolutos (es decir, positivos).


float aspect() const 🔗

Devuelve la relación de aspecto de este vector, la relación de x a y.


Vector2i clamp(min: Vector2i, max: Vector2i) const 🔗

Devuelve un nuevo vector con todos los componentes limitados entre los componentes de min y max, ejecutando @GlobalScope.clamp() en cada componente.


Vector2i clampi(min: int, max: int) const 🔗

Devuelve un nuevo vector con todos los componentes restringidos entre min y max, ejecutando @GlobalScope.clamp() en cada componente.


int distance_squared_to(to: Vector2i) const 🔗

Devuelve la distancia al cuadrado entre este vector y to.

Este método se ejecuta más rápido que distance_to(), así que es preferible si necesitas comparar vectores o necesitas la distancia al cuadrado para alguna fórmula.


float distance_to(to: Vector2i) const 🔗

Devuelve la distancia entre este vector y to.


float length() const 🔗

Devuelve la longitud (magnitud) de este vector.


int length_squared() const 🔗

Devuelve la longitud cuadrada (magnitud cuadrada) de este vector.

Este método funciona más rápido que el length(), por lo que es preferible si necesitas comparar vectores o necesitas la distancia al cuadrado para alguna fórmula.


Vector2i max(with: Vector2i) const 🔗

Devuelve el máximo componente a componente de este y with, equivalente a Vector2i(maxi(x, with.x), maxi(y, with.y)).


int max_axis_index() const 🔗

Devuelve el eje del valor más alto del vector. Consulta las constantes AXIS_*. Si todos los componentes son iguales, este método devuelve AXIS_X.


Vector2i maxi(with: int) const 🔗

Devuelve el máximo componente a componente de este y with, equivalente a Vector2i(maxi(x, with), maxi(y, with)).


Vector2i min(with: Vector2i) const 🔗

Devuelve el mínimo componente a componente de este y with, equivalente a Vector2i(mini(x, with.x), mini(y, with.y)).


int min_axis_index() const 🔗

Devuelve el eje del valor más bajo del vector. Consulta las constantes AXIS_*. Si todos los componentes son iguales, este método devuelve AXIS_Y.


Vector2i mini(with: int) const 🔗

Devuelve el mínimo componente a componente de este y with, equivalente a Vector2i(mini(x, with), mini(y, with)).


Vector2i sign() const 🔗

Devuelve un nuevo vector con cada componente establecido en 1 si es positivo, -1 si es negativo y 0 si es cero. El resultado es idéntico a llamar a @GlobalScope.sign() en cada componente.


Vector2i snapped(step: Vector2i) const 🔗

Devuelve un nuevo vector con cada componente ajustado al múltiplo más cercano del componente correspondiente en step.


Vector2i snappedi(step: int) const 🔗

Devuelve un nuevo vector con cada componente ajustado al múltiplo más cercano de step.


Descripciones de Operadores

bool operator !=(right: Vector2i) 🔗

Devuelve true si los vectores no son iguales.


Vector2i operator %(right: Vector2i) 🔗

Obtiene el resto de cada componente del Vector2i con los componentes del Vector2i dado. Esta operación utiliza la división truncada, que a menudo no es deseada ya que no funciona bien con números negativos. Considera usar @GlobalScope.posmod() en su lugar si quieres manejar números negativos.

print(Vector2i(10, -20) % Vector2i(7, 8)) # Imprime (3, -4)

Vector2i operator %(right: int) 🔗

Obtiene el resto de cada componente del Vector2i con el int dado. Esta operación utiliza la división truncada, que a menudo no es deseada ya que no funciona bien con números negativos. Considera usar @GlobalScope.posmod() en su lugar si quieres manejar números negativos.

print(Vector2i(10, -20) % 7) # Imprime (3, -6)

Vector2i operator *(right: Vector2i) 🔗

Multiplica cada componente de Vector2i por los componentes del Vector2i dado.

print(Vector2i(10, 20) * Vector2i(3, 4)) # Imprime (30, 80)

Vector2 operator *(right: float) 🔗

Multiplica cada componente del Vector2i por el float dado. Devuelve un Vector2.

print(Vector2i(10, 15) * 0.9) # Imprime (9.0, 13.5)

Vector2i operator *(right: int) 🔗

Multiplica cada componente de Vector2i por el int dado.


Vector2i operator +(right: Vector2i) 🔗

Suma cada componente de Vector2i por los componentes del Vector2i dado.

print(Vector2i(10, 20) + Vector2i(3, 4)) # Imprime (13, 24)

Vector2i operator -(right: Vector2i) 🔗

Resta cada componente de Vector2i por los componentes del Vector2i dado.

print(Vector2i(10, 20) - Vector2i(3, 4)) # Imprime (7, 16)

Vector2i operator /(right: Vector2i) 🔗

Divide cada componente de Vector2i entre los componentes del Vector2i dado.

print(Vector2i(10, 20) / Vector2i(2, 5)) # Imprime (5, 4)

Vector2 operator /(right: float) 🔗

Divide cada componente del Vector2i entre el float dado. Devuelve un Vector2.

print(Vector2i(10, 20) / 2.9) # Imprime (5.0, 10.0)

Vector2i operator /(right: int) 🔗

Divide cada componente de Vector2i por el int dado.


bool operator <(right: Vector2i) 🔗

Compara dos vectores Vector2i comprobando primero si el valor X del vector de la izquierda es menor que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores. Este operador es útil para ordenar vectores.


bool operator <=(right: Vector2i) 🔗

Compara dos vectores Vector2i comprobando primero si el valor X del vector de la izquierda es menor o igual que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores. Este operador es útil para ordenar vectores.


bool operator ==(right: Vector2i) 🔗

Devuelve true si los vectores son iguales.


bool operator >(right: Vector2i) 🔗

Compara dos vectores Vector2i comprobando primero si el valor X del vector de la izquierda es mayor que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores. Este operador es útil para ordenar vectores.


bool operator >=(right: Vector2i) 🔗

Compara dos vectores Vector2i comprobando primero si el valor X del vector de la izquierda es mayor o igual que el valor X del vector right. Si los valores X son exactamente iguales, entonces repite esta comprobación con los valores Y de los dos vectores. Este operador es útil para ordenar vectores.


int operator [](index: int) 🔗

Accede a los componentes del vector utilizando su index. v[0] es equivalente a v.x, y v[1] es equivalente a v.y.


Vector2i operator unary+() 🔗

Devuelve el mismo valor como si el + no estuviera ahí. El + unario no hace nada, pero a veces puede hacer que tu código sea más legible.


Vector2i operator unary-() 🔗

Devuelve el valor negativo del Vector2i. Esto es lo mismo que escribir Vector2i(-v.x, -v.y). Esta operación invierte la dirección del vector manteniendo la misma magnitud.