In questo nuovo articolo andremo alla scoperta di come si può lavorare con i colori in FreeBASIC.
Funzione color
La prima funzione che incontriamo è la funzione color che ci permette di fare tre cose:
- impostare il colore del primo piano (foreground)
- impostare il colore dello sfondo (background)
- ottenere i colori correnti del primo piano e dello sfondo
Impostare i colori del primo piano e dello sfondo
L’impostazione del colore del primo piano e dello sfondo, oltre ad avere diretto effetto sullo schermo grafico, ha effetto anche sulle figure che vengono su questo disegnate, per esempio con le funzioni line o circle, se non si specifica con queste istruzioni l’attributo relativo al loro colore.
Definire un colore con la funzione rgb
La funzione rgb permette di valorizzare distintamente i tre colori primari percepiti dal nostro occhio per sintesi additiva: rosso (red), verde (green) e blu (blue).
Nel mondo dei computer si fa largo uso del modello di colori RGB.
Vediamo un esempio:
''imposta la risoluzione dello schermo e quella grafica screen 19, 32 ''imposta il colore rosso per il primo piano e ''il colore zafferano per lo sfondo color(rgb(255,0,0), rgb(244,196,48)) ''pulisce lo schermo per rendere visibile il ''colore dello sfondo appena impostato cls print "Cosa sono i colori?" sleep
Su Wikipedia è disponibile una lista dei colori molto utile per il programmatore.
Definire un colore con la tavolozza dei colori predefinita
In FreeBASIC è disponibile una tavolozza dei colori predefinita (default pallettes) che raggruppa una serie di colori visualizzabili in base alla modalità grafica scelta.
Per impostare uno di questi colori basterà specificare il relativo valore associato.
screen 12 color(1, 5) ''primo piano blu e sfondo rosa cls print "ciao" sleep
In FreeBASIC è anche possibile cambiare la tavolozza dei colori attraverso l’istruzione palette, ma questa possibilità non verrà esplorata in questo articolo.
Ottenere il colore del primo piano e dello sfondo
La funzione color restituisce un valore ulong (ovvero un valore di tipo long senza però il segno) che contiene l’informazione dei valori del primo piano e dello sfondo correnti:
dim c as ulong c = color() print "Colori della console:" print "primo piano:"; loword(c) print "sfondo:"; hiword(c)
Ottenere il colore di un pixel
Oltre al colore del primo piano e dello sfondo, potremmo essere interessati a conoscere il colore di uno specifico punto dello schermo (pixel).
Per fare questo possiamo utilizzare la funzione point:
screen 12 color(1, 5) ''primo piano blu e sfondo rosa cls line(10,10)-(40,10), 2 ''disegna una linea verde locate 4,1: print "colore dello sfondo:"; point(5,5) locate 5,1: print "colore di un pixel della linea:"; point(20,10) sleep
Bene! Come introduzione al mondo dei colori in FreeBASIC possiamo fermarci qui.
A presto. 🙂