Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Vector2i

Un vettore 2D che utilizza coordinate intere.

Descrizione

Una struttura a 2 elementi che può essere utilizzata per rappresentare coordinate di griglia 2D o qualsiasi altra coppia di numeri interi.

Utilizza coordinate intere ed è quindi preferibile a Vector2 quando è necessaria una precisione esatta. Nota che i valori sono limitati a 32 bit e, a differenza di Vector2, questo non può essere configurato con un'opzione di build del motore. Utilizza int o PackedInt64Array se sono necessari valori a 64 bit.

Nota: In un contesto booleano, un Vector2i sarà valutato come false se è uguale a Vector2i(0, 0). Altrimenti, un Vector2i sarà sempre valutato come true.

Tutorial

Proprietà

int

x

0

int

y

0

Costruttori

Vector2i

Vector2i()

Vector2i

Vector2i(from: Vector2i)

Vector2i

Vector2i(from: Vector2)

Vector2i

Vector2i(x: int, y: int)

Metodi

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

Operatori

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-()


Enumerazioni

enum Axis: 🔗

Axis AXIS_X = 0

Valore enumerato per l'asse X. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_Y = 1

Valore enumerato per l'asse Y. Restituito da max_axis_index() e min_axis_index().


Costanti

ZERO = Vector2i(0, 0) 🔗

Il vettore zero, un vettore con tutti i suoi componenti impostati su 0.

ONE = Vector2i(1, 1) 🔗

Il vettore unitario, un vettore con tutti i suoi componenti impostati su 1.

MIN = Vector2i(-2147483648, -2147483648) 🔗

Il vettore minimo, un vettore con tutti i componenti uguali a INT32_MIN. Può essere utilizzato come equivalente negativo di Vector2.INF per gli interi.

MAX = Vector2i(2147483647, 2147483647) 🔗

Il vettore massimo, un vettore con tutti i componenti uguali a INT32_MAX. Può essere utilizzato come equivalente di Vector3.INF per gli interi.

LEFT = Vector2i(-1, 0) 🔗

Il vettore unitario sinistro. Rappresenta la direzione a sinistra.

RIGHT = Vector2i(1, 0) 🔗

Il vettore unitario destro. Rappresenta la direzione a destra.

UP = Vector2i(0, -1) 🔗

Il vettore unitario verso l'alto. Y è verso il basso in 2D, quindi questo vettore punta verso -Y.

DOWN = Vector2i(0, 1) 🔗

Il vettore unitario verso il basso. Y è verso il basso in 2D, quindi questo vettore punta verso +Y.


Descrizioni delle proprietà

int x = 0 🔗

Il componente X del vettore. Accessibile anche tramite la posizione di indice [0].


int y = 0 🔗

Il componente Y del vettore. Accessibile anche tramite la posizione di indice [1].


Descrizioni dei costruttori

Vector2i Vector2i() 🔗

Costruisce un Vector2i predefinito con tutti i componenti impostati su 0.


Vector2i Vector2i(from: Vector2i)

Costruisce un Vector2i come copia del Vector2i specificato.


Vector2i Vector2i(from: Vector2)

Costruisce un nuovo Vector2i dal Vector2 fornito, troncando le parti frazionarie dei componenti (arrotondando verso zero). Per un comportamento diverso, considera di passare il risultato di Vector2.ceil(), Vector2.floor() o Vector2.round() a questo costruttore.


Vector2i Vector2i(x: int, y: int)

Costruisce un nuovo Vector2i dai parametri x e y forniti.


Descrizioni dei metodi

Vector2i abs() const 🔗

Restituisce un nuovo vettore con tutti i componenti in valori assoluti (ovvero positivi).


float aspect() const 🔗

Restituisce le proporzioni di questo vettore, il rapporto tra x e y.


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

Restituisce un nuovo vettore con tutti i suoi componenti limitati tra i componenti di min e max, eseguendo @GlobalScope.clamp() su ciascun componente.


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

Restituisce un nuovo vettore con tutti i suoi componenti limitati tra min e max, eseguendo @GlobalScope.clamp() su ciascun componente.


int distance_squared_to(to: Vector2i) const 🔗

Restituisce la distanza euclidea al quadrato tra questo vettore e to.

Questo metodo è più veloce di distance_to(), quindi è preferibile se è necessario confrontare vettori o se è necessaria la distanza al quadrato per qualche formula.


float distance_to(to: Vector2i) const 🔗

Restituisce la distanza euclidea tra questo vettore e to.


float length() const 🔗

Restituisce la lunghezza (magnitudine) di questo vettore.


int length_squared() const 🔗

Restituisce la lunghezza (magnitudine) al quadrato di questo vettore.

Questo metodo è più veloce di length(), quindi è preferibile se è necessario confrontare vettori o se è necessaria la distanza al quadrato per una formula.


Vector2i max(with: Vector2i) const 🔗

Restituisce il massimo, componente per componente, di questo vettore e with, equivalente a Vector2i(maxi(x, with.x), maxi(y, with.y)).


int max_axis_index() const 🔗

Restituisce l'asse del valore più alto del vettore. Vedi le costanti AXIS_*. Se tutti i componenti sono uguali, questo metodo restituisce AXIS_X.


Vector2i maxi(with: int) const 🔗

Restituisce il massimo, componente per componente, di questo vettore e with, equivalente a Vector2i(maxi(x, with), maxi(y, with)).


Vector2i min(with: Vector2i) const 🔗

Restituisce il minimo, componente per componente, di questo vettore e with, equivalente a Vector2i(mini(x, with.x), mini(y, with.y)).


int min_axis_index() const 🔗

Restituisce l'asse del valore più basso del vettore. Vedi le costanti AXIS_*. Se tutti i componenti sono uguali, questo metodo restituisce AXIS_Y.


Vector2i mini(with: int) const 🔗

Restituisce il minimo, componente per componente, di questo vettore e with, equivalente a Vector2i(mini(x, with), mini(y, with)).


Vector2i sign() const 🔗

Restituisce un nuovo vettore con ogni componente impostato su 1 se è positivo, -1 se è negativo e 0 se è zero. Il risultato è identico alla chiamata di @GlobalScope.sign() su ogni componente.


Vector2i snapped(step: Vector2i) const 🔗

Restituisce un nuovo vettore con ogni componente arrotondato al multiplo più vicino del componente corrispondente in step.


Vector2i snappedi(step: int) const 🔗

Restituisce un nuovo vettore con ogni componente arrotondato al multiplo più vicino di step.


Descrizioni degli operatori

bool operator !=(right: Vector2i) 🔗

Restituisce true se i vettori non sono uguali.


Vector2i operator %(right: Vector2i) 🔗

Ottiene il resto di ogni componente di Vector2i con i componenti del Vector2i fornito. Questa operazione usa la divisione troncata, che spesso non è desiderata in quanto non funziona bene con i numeri negativi. Considera di usare @GlobalScope.posmod() se vuoi gestire i numeri negativi.

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

Vector2i operator %(right: int) 🔗

Ottiene il resto di ogni componente di Vector2i con l'int fornito. Questa operazione usa la divisione troncata, che spesso non è desiderata in quanto non funziona bene con i numeri negativi. Considera di usare @GlobalScope.posmod() se vuoi gestire i numeri negativi.

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

Vector2i operator *(right: Vector2i) 🔗

Moltiplica ogni componente del Vector2i per i componenti del Vector2i fornito.

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

Vector2 operator *(right: float) 🔗

Moltiplica ogni componente del Vector2i per il float fornito. Restituisce un Vector2.

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

Vector2i operator *(right: int) 🔗

Moltiplica ogni componente del Vector2i per l'int fornito.


Vector2i operator +(right: Vector2i) 🔗

Aggiunge ogni componente del Vector2i con i componenti del Vector2i fornito.

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

Vector2i operator -(right: Vector2i) 🔗

Sottrae ogni componente del Vector2i dai componenti del Vector2i fornito.

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

Vector2i operator /(right: Vector2i) 🔗

Divide ogni componente del Vector2i per i componenti del Vector2i fornito.

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

Vector2 operator /(right: float) 🔗

Divides each component of the Vector2i by the given float. Returns a Vector2.

print(Vector2i(1, 2) / 2.5) # Prints (0.4, 0.8)

Vector2i operator /(right: int) 🔗

Divide ogni componente del Vector2i per l'int fornito.


bool operator <(right: Vector2i) 🔗

Confronta due vettori Vector2i verificando prima se il valore X del vettore di sinistra è minore del valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori. Questo operatore è utile per ordinare i vettori.


bool operator <=(right: Vector2i) 🔗

Confronta due vettori Vector2i verificando prima se il valore X del vettore di sinistra è minore o uguale al valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori. Questo operatore è utile per ordinare i vettori.


bool operator ==(right: Vector2i) 🔗

Restituisce true se i vettori sono uguali.


bool operator >(right: Vector2i) 🔗

Confronta due vettori Vector2i verificando prima se il valore X del vettore di sinistra è maggiore del valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori. Questo operatore è utile per ordinare i vettori.


bool operator >=(right: Vector2i) 🔗

Confronta due vettori Vector2i verificando prima se il valore X del vettore di sinistra è maggiore o uguale al valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori. Questo operatore è utile per ordinare i vettori.


int operator [](index: int) 🔗

Accede ai componenti del vettore attraverso il loro indice (index). v[0] è equivalente a v.x, mentre v[1] è equivalente a v.y.


Vector2i operator unary+() 🔗

Restituisce lo stesso valore come se + non ci fosse. Il + unario non fa nulla, ma a volte può rendere il tuo codice più leggibile.


Vector2i operator unary-() 🔗

Restituisce il valore negativo del Vector2i. Equivale a scrivere Vector2i(-v.x, -v.y). Questa operazione inverte la direzione del vettore mantenendo la stessa magnitudine.