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
|
||
|
Constructores
Vector2i() |
|
Métodos
abs() const |
|
aspect() const |
|
distance_squared_to(to: Vector2i) const |
|
distance_to(to: Vector2i) const |
|
length() const |
|
length_squared() const |
|
max_axis_index() const |
|
min_axis_index() const |
|
sign() const |
|
Operadores
operator !=(right: Vector2i) |
|
operator %(right: Vector2i) |
|
operator %(right: int) |
|
operator *(right: Vector2i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator +(right: Vector2i) |
|
operator -(right: Vector2i) |
|
operator /(right: Vector2i) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: Vector2i) |
|
operator <=(right: Vector2i) |
|
operator ==(right: Vector2i) |
|
operator >(right: Vector2i) |
|
operator >=(right: Vector2i) |
|
operator [](index: int) |
|
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
El componente X del vector. También se puede acceder utilizando la posición del índice [0].
El componente Y del vector. También se puede acceder usando la posición del índice [1].
Descripciones de Constructores
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
Devuelve un nuevo vector con todos los componentes en valores absolutos (es decir, positivos).
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.
Devuelve la longitud (magnitud) de este vector.
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)).
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)).
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)).
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.
Accede a los componentes del vector utilizando su index. v[0] es equivalente a v.x, y v[1] es equivalente a v.y.
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.
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.