PackedColorArray

Un array compatto di Color.

Descrizione

Un array specificamente progettato per contenere Color. Impacchetta i dati in modo compatto, in modo da risparmiare memoria per array di grandi dimensioni.

Differenze tra gli array impacchettati, gli array tipizzati e gli array non tipizzati: Gli array impacchettati sono generalmente più veloci da iterare e modificare rispetto a un array tipizzato dello stesso tipo (ad esempio PackedColorArray in confronto a Array[Color]). Inoltre, gli array impacchettati consumano meno memoria. Come svantaggio, i array impacchettati sono meno flessibili in quanto non offrono molti metodi di convenienza come Array.map(). Gli array tipizzati sono anche loro più veloci da iterare e modificare in confronto ad array non tipizzati.

Nota: Gli array impacchettati sono sempre passati per riferimento. Per ottenere una copia di un array che si può modificare indipendentemente dall'array originale, usare duplicate(). Questo non è il caso per le proprietà e per i metodi integrati. In tali casi l'array impacchettato restituito è una copia, e modificarlo non influenzerà il valore originale. Per aggiornare una proprietà integrata di questo tipo è necessario modificare l'array restituito e poi riassegnarlo alla proprietà.

Nota

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

Costruttori

PackedColorArray

PackedColorArray()

PackedColorArray

PackedColorArray(from: PackedColorArray)

PackedColorArray

PackedColorArray(from: Array)

Metodi

bool

append(value: Color)

void

append_array(array: PackedColorArray)

int

bsearch(value: Color, before: bool = true)

void

clear()

int

count(value: Color) const

PackedColorArray

duplicate()

bool

erase(value: Color)

void

fill(value: Color)

int

find(value: Color, from: int = 0) const

Color

get(index: int) const

bool

has(value: Color) const

int

insert(at_index: int, value: Color)

bool

is_empty() const

bool

push_back(value: Color)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

rfind(value: Color, from: int = -1) const

void

set(index: int, value: Color)

int

size() const

PackedColorArray

slice(begin: int, end: int = 2147483647) const

void

sort()

PackedByteArray

to_byte_array() const

Operatori

bool

operator !=(right: PackedColorArray)

PackedColorArray

operator +(right: PackedColorArray)

bool

operator ==(right: PackedColorArray)

Color

operator [](index: int)


Descrizioni dei costruttori

PackedColorArray PackedColorArray() 🔗

Costruisce un PackedColorArray vuoto.


PackedColorArray PackedColorArray(from: PackedColorArray)

Costruisce un PackedColorArray come copia del PackedColorArray specificato.


PackedColorArray PackedColorArray(from: Array)

Costruisce un nuovo PackedColorArray. È possibile passare un Array generico che sarà convertito.

Nota: Quando si inizializza un PackedColorArray con elementi, deve essere inizializzato con un Array di valori Color:

var array = PackedColorArray([Color(0.1, 0.2, 0.3), Color(0.4, 0.5, 0.6)])

Descrizioni dei metodi

bool append(value: Color) 🔗

Aggiunge un elemento alla fine dell'array (pseudonimo di push_back()).


void append_array(array: PackedColorArray) 🔗

Accoda un PackedColorArray alla fine di questo array.


int bsearch(value: Color, before: bool = true) 🔗

Trova l'indice di un valore esistente (o l'indice di inserimento che mantiene l'ordine di ordinamento, se il valore non è ancora presente nell'array) utilizzando la ricerca binaria. Facoltativamente, è possibile passare uno specificatore before. Se false, l'indice restituito viene dopo tutte le voci esistenti del valore nell'array.

Nota: Chiamare bsearch() su un array non ordinato provoca un comportamento imprevisto.


void clear() 🔗

Cancella l'array. Ciò equivale a usare resize() con una dimensione di 0.


int count(value: Color) const 🔗

Restituisce il numero di volte che un elemento è presente nell'array.


PackedColorArray duplicate() 🔗

Crea una copia dell'array, e la restituisce.


bool erase(value: Color) 🔗

Rimuove la prima occorrenza di un valore dall'array e restituisce true. Se il valore non esiste nell'array, nulla accade e viene restituito false. Per rimuovere un elemento in base all'indice, utilizzare invece remove_at().


void fill(value: Color) 🔗

Assegna il valore specificato a tutti gli elementi nell'array. Questo può solitamente essere usato insieme a resize() per creare un array con una determinata dimensione ed elementi inizializzati.


int find(value: Color, from: int = 0) const 🔗

Cerca un valore nell'array e restituisce il suo indice o -1 se non trovato. Facoltativamente, può essere passato l'indice di ricerca iniziale.


Color get(index: int) const 🔗

Restituisce il Color all'indice index nell'array. Se index è fuori limite o negativo, questo metodo fallisce e restituisce Color(0, 0, 0, 1).

Questo metodo è simile (ma non identico) all'operatore []. In particolare, quando questo metodo fallisce, non interrompe l'esecuzione del progetto se eseguito dall'editor.


bool has(value: Color) const 🔗

Restituisce true se l'array contiene value.


int insert(at_index: int, value: Color) 🔗

Inserisce un nuovo elemento in una determinata posizione nell'array. La posizione deve essere valida o alla fine dell'array (idx == size()).


bool is_empty() const 🔗

Restituisce true se l'array è vuoto.


bool push_back(value: Color) 🔗

Accoda un valore all'array.


void remove_at(index: int) 🔗

Rimuove un elemento dall'array in base all'indice.


int resize(new_size: int) 🔗

Imposta la dimensione dell'array. Se l'array viene ingrandito, riserva gli elementi alla fine dell'array. Se l'array viene rimpicciolito, tronca l'array alla nuova dimensione. Chiamare resize() una sola volta e assegnare i nuovi valori è più veloce che aggiungere nuovi elementi uno alla volta.

Restituisce @GlobalScope.OK in caso di successo, oppure una delle seguenti costanti di Error se questo metodo fallisce: @GlobalScope.ERR_INVALID_PARAMETER se la dimensione è negativa, oppure @GlobalScope.ERR_OUT_OF_MEMORY se le allocazioni falliscono. Usare size() per trovare la dimensione effettiva dell'array dopo il ridimensionamento.


void reverse() 🔗

Inverte l'ordine degli elementi nell'array.


int rfind(value: Color, from: int = -1) const 🔗

Cerca nell'array in ordine inverso. Facoltativamente, può essere passato un indice di ricerca iniziale. Se negativo, l'indice di inizio è considerato relativo alla fine dell'array.


void set(index: int, value: Color) 🔗

Modifica il Color all'indice specificato.


int size() const 🔗

Restituisce il numero di elementi nell'array.


PackedColorArray slice(begin: int, end: int = 2147483647) const 🔗

Restituisce la sezione del PackedColorArray, da begin (incluso) a end (escluso), sotto forma di un nuovo PackedColorArray.

Il valore assoluto di begin e end sarà limitato alla dimensione dell'array, quindi il valore predefinito per end lo suddivide alla dimensione dell'array per impostazione predefinita (ad esempio, arr.slice(1) è un'abbreviazione per arr.slice(1, arr.size())).

Se begin o end sono negativi, saranno relativi alla fine dell'array (ad esempio, arr.slice(0, -2) è un'abbreviazione per arr.slice(0, arr.size() - 2)).


void sort() 🔗

Ordina gli elementi dell'array in ordine crescente.


PackedByteArray to_byte_array() const 🔗

Restituisce un PackedByteArray con ogni colore codificato come byte.


Descrizioni degli operatori

bool operator !=(right: PackedColorArray) 🔗

Restituisce true se i contenuti degli array differiscono.


PackedColorArray operator +(right: PackedColorArray) 🔗

Restituisce un nuovo PackedColorArray con il contenuto di right accodato alla fine di questo array. Per prestazioni migliori, considera invece di usare append_array().


bool operator ==(right: PackedColorArray) 🔗

Restituisce true se il contenuto di entrambi gli array è lo stesso, ovvero hanno tutti i Color uguali agli indici corrispondenti.


Color operator [](index: int) 🔗

Restituisce il Color all'indice index. Gli indici negativi possono essere utilizzati per accedere agli elementi partendo dalla fine. Utilizzare un indice fuori dai limiti dell'array genererà un errore.