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.

Rect2i

Una bounding box allineata agli assi 2D con coordinate intere.

Descrizione

Il tipo di Variant integrato Rect2i rappresenta un rettangolo allineato agli assi in uno spazio 2D, usando coordinate intere. È definito dalla sua position e size, che sono Vector2i. Viene spesso utilizzato per test rapidi di sovrapposizione (vedi intersects()).

Per le coordinate in virgola mobile, vedi Rect2.

Nota: I valori negativi per size non sono supportati. Con dimensioni negative, la maggior parte dei metodi Rect2i non funziona correttamente. Utilizza abs() per ottenere un Rect2i equivalente con una dimensione non negativa.

Nota: In un contesto booleano, un Rect2i è valutato come false se sia position sia size sono zero (pari a Vector2.ZERO). Altrimenti, è sempre valutato come true.

Nota

Ci sono differenze sostanziali quando si usa questa API con C#. Vedi Differenze dell'API C# rispetto a GDScript per maggiori informazioni.

Tutorial

Proprietà

Vector2i

end

Vector2i(0, 0)

Vector2i

position

Vector2i(0, 0)

Vector2i

size

Vector2i(0, 0)

Costruttori

Rect2i

Rect2i()

Rect2i

Rect2i(from: Rect2i)

Rect2i

Rect2i(from: Rect2)

Rect2i

Rect2i(position: Vector2i, size: Vector2i)

Rect2i

Rect2i(x: int, y: int, width: int, height: int)

Metodi

Rect2i

abs() const

bool

encloses(b: Rect2i) const

Rect2i

expand(to: Vector2i) const

int

get_area() const

Vector2i

get_center() const

Rect2i

grow(amount: int) const

Rect2i

grow_individual(left: int, top: int, right: int, bottom: int) const

Rect2i

grow_side(side: int, amount: int) const

bool

has_area() const

bool

has_point(point: Vector2i) const

Rect2i

intersection(b: Rect2i) const

bool

intersects(b: Rect2i) const

Rect2i

merge(b: Rect2i) const

Operatori

bool

operator !=(right: Rect2i)

bool

operator ==(right: Rect2i)


Descrizioni delle proprietà

Vector2i end = Vector2i(0, 0) 🔗

Il punto di fine. Di solito è l'angolo in basso a destra del rettangolo ed è equivalente a posizione + dimensioni. L'impostazione di questo punto influisce su size.


Vector2i position = Vector2i(0, 0) 🔗

Il punto di origine. Di solito è l'angolo in alto a sinistra del rettangolo.


Vector2i size = Vector2i(0, 0) 🔗

La larghezza e l'altezza del rettangolo, a partire da position. L'impostazione di questo valore influisce anche sul punto end.

Nota: Si consiglia di impostare larghezza e altezza su valori non negativi, poiché la maggior parte dei metodi in Godot presuppone che position sia l'angolo in alto a sinistra e end sia l'angolo in basso a destra. Per ottenere un rettangolo equivalente con dimensioni non negative, usa abs().


Descrizioni dei costruttori

Rect2i Rect2i() 🔗

Costruisce un Rect2 con la sua position e size impostate su Vector2.ZERO.


Rect2i Rect2i(from: Rect2i)

Costruisce un Rect2i come copia del Rect2i specificato.


Rect2i Rect2i(from: Rect2)

Costruisce un Rect2i da un Rect2. Le coordinate in virgola mobile vengono troncate.


Rect2i Rect2i(position: Vector2i, size: Vector2i)

Costruisce un Rect2i dalla posizione (position) e dimensioni (size).


Rect2i Rect2i(x: int, y: int, width: int, height: int)

Costruisce un Rect2i impostando la sua position su (x, y) e la sua size su (width, height).


Descrizioni dei metodi

Rect2i abs() const 🔗

Restituisce un Rect2i equivalente a questo rettangolo, con la sua larghezza e altezza modificate per essere valori non negativi e con la sua position che è l'angolo in alto a sinistra del rettangolo.

var rect = Rect2i(25, 25, -100, -50)
var assoluto = rect.abs() # assoluto è Rect2i(-75, -25, 100, 50)

Nota: Si consiglia di utilizzare questo metodo quando size è negativo, poiché la maggior parte degli altri metodi in Godot presuppone che position sia l'angolo in alto a sinistra e end sia l'angolo in basso a destra.


bool encloses(b: Rect2i) const 🔗

Restituisce true se questo Rect2i racchiude completamente un altro.


Rect2i expand(to: Vector2i) const 🔗

Restituisce una copia di questo rettangolo espanso per allineare i bordi con il punto to specificato, se necessario.

var rect = Rect2(0, 0, 5, 2)

rect = rect.expand(Vector2i(10, 0)) # rect è Rect2i(0, 0, 10, 2)
rect = rect.expand(Vector2i(-5, 5)) # rect è Rect2i(-5, 0, 15, 5)

int get_area() const 🔗

Restituisce l'area di questo rettangolo. Questo è equivalente a size.x * size.y. Vedi anche has_area().


Vector2i get_center() const 🔗

Restituisce il punto centrale del rettangolo. È lo stesso di position + (size / 2.0).

Nota: Se size è dispari, il risultato sarà arrotondato verso position.


Rect2i grow(amount: int) const 🔗

Restituisce una copia di questo rettangolo esteso su tutti i lati dalla quantità amount. Un amount negativo restringe invece il rettangolo. Vedi anche grow_individual() e grow_side().

var a = Rect2i(4, 4, 8, 8).grow(4) # a è Rect2i(0, 0, 16, 16)
var b = Rect2i(0, 0, 8, 4).grow(2) # b è Rect2i(-2, -2, 12, 8)

Rect2i grow_individual(left: int, top: int, right: int, bottom: int) const 🔗

Restituisce una copia di questo rettangolo con i suoi lati sinistro (left), superiore (top), destro (right) e inferiore (bottom) estesi delle quantità specificate. I valori negativi, invece, restringono i lati. Vedi anche grow() e grow_side().


Rect2i grow_side(side: int, amount: int) const 🔗

Restituisce una copia di questo rettangolo con il suo lato (side) esteso della quantità amount (vedi le costanti di Side). Un amount negativo, invece, restringe il rettangolo. Vedi anche grow() e grow_individual().


bool has_area() const 🔗

Restituisce true se questo rettangolo ha larghezza e altezza positive. Vedi anche get_area().


bool has_point(point: Vector2i) const 🔗

Restituisce true se il rettangolo contiene il punto point. Per convenzione, i punti sui bordi destro e inferiore non sono inclusi.

Nota: Questo metodo non è affidabile per un Rect2i con una size negativa. Utilizza prima abs() per ottenere un rettangolo valido.


Rect2i intersection(b: Rect2i) const 🔗

Restituisce l'intersezione tra questo rettangolo e b. Se i rettangoli non si intersecano, restituisce un Rect2i vuoto.

var a = Rect2i(0, 0, 5, 10)
var b = Rect2i(2, 0, 8, 4)

var c = a.intersection(b) # c è Rect2i(2, 0, 3, 4)

Nota: Se hai solo bisogno di sapere se due rettangoli si sovrappongono, usa invece intersects().


bool intersects(b: Rect2i) const 🔗

Restituisce true se questo rettangolo si sovrappone con il rettangolo b. I lati di entrambi i rettangoli sono esclusi.


Rect2i merge(b: Rect2i) const 🔗

Restituisce un Rect2i che racchiude sia questo rettangolo sia b attorno ai bordi. Vedi anche encloses().


Descrizioni degli operatori

bool operator !=(right: Rect2i) 🔗

Restituisce true se position o size di entrambi i rettangoli non sono uguali.


bool operator ==(right: Rect2i) 🔗

Restituisce true se entrambi position e size dei rettangoli sono uguali, rispettivamente.