Come gestire i colori in Pygame

Per gestire i colori il modulo pygame adotta il classico metodo RGB (Red Green Blue). Qualsiasi colore può essere ottenuto mescolando tra loro il rosso, il verde e il blu.

( Red, Green, Blue )

Pertanto, in pygame un colore è una tupla di tre elementi. Ogni elemento indica l'intensità dei colori principali (Red, Green, Blue) da 0 a 255 (massimo).

Il primo elemento indica l'intensità del colore rosso (Red), il secondo del verde (Green), il terzo del blu (Blue).

La combinazione di valori RGB produce un colore detto valore RGB.

Nota. E' un po' come versare vernici di colore rosso, verde e blu in un secchio, poi mescolare. A seconda delle quantità versate dei colori, uscirà un colore diverso.

Alcuni esempi pratici

Per fare il colore nero devo annullare tutti i valori RGB.

(0,0,0)

Viceversa, per il colore bianco indico tutti i valori RGB al loro valore massimo (255).

(255,255,255)

E' intuitivoo che per ottenere il colore rosso basta indicare 255 soltanto al primo elemento della tupla e zero negli altri.

(255,0,0)

Allo stesso modo per fare il verde indico 255 soltanto al secondo elemento della tupla e zero negli altri.

(0,255,0)

Infine per fare il blu, l'ultimo dei colori fondamentali, indico 255 al terzo elemento e zero negli altri.

(0,0,255)

Modificando i valori RGB posso ottenere sfumature diverse dei colori o nuovi colori.

Ad esempio mescolando il rosso e il verde ottengo il giallo.

(255,255,0)

Riducendo l'intensità del verde ottengo un verde più scuro.

(0,128,0)

Allo stesso modo ottengo altri colori.

  • Fuchsia

    (255,0,255)

  • Grigio

    (128,128,128)

  • Marrone

    (128,0,0)

  • Argento

    (192,192,192)

Considerando tutte le combinazioni possibili (2553) della tupla RGB, posso ottenere circa 17 milioni di colori differenti.

La trasparenza alfa

Nella gestione dei colori di pygame è anche possibile indicare la trasparenza tramite il parametro alfa.

Considerando anche il parametro alfa, facoltativo, la tupla di definizione del colore può anche essere composta da quattro elementi.

(Red, Green, Blue, alfa)

Il parametro alfa è un valore intero compreso tra 0 e 255 (nessuna trasparenza) che indica l'opacità dell'oggetto.

  • Se alfa è 0 l'oggetto non è opaco. Quindi è completamente trasparente. Non si vede.
  • Se alfa è 255 l'oggetto è opaco al 100%. Quindi non è trasparente. Si vede perfettamente.

Per valori intermedi l'oggetto è più o meno trasparente.

Nota. Quando un oggetto è trasparente pygame visualizza in parte anche gli oggetti sottostanti, quelli a livelli inferiori. Ad esempio, lo sfondo.

Ad esempio, per definire il colore rosso uso la tupla a tre parametri

(255,0,0)

Il quarto parametro non è indicato. Quindi, di default è 255.

E' equivalente a scrivere

(255,0,0,255)

Per fare una superficie rossa semitrasparente, riduco l'opacità da 255 a 128

(255,0,0,128)

In questo modo ottengo un oggetto rosso semitrasparente.

Infine, per ottenere la massima trasparenza dell'oggetto indico il valore minimo dell'opacità ossia zero.

(255,0,0,0)

Dopo questa modifica l'oggetto è completamente invisibile (alfa=0).

Attenzione. Per lavorare con la trasparenza alfa è necessario definire l'oggetto di superficie ai valori alfa tramite il metodo convert_alpha(). Altrimenti la trasparenza non funziona.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

PyGame