# Inform e Glulx/Inform e ancora Inform/I colori

Inform e Glulx
Copertina Tutti i moduli · Sviluppo
* IntroduzioneInform e Glulx/Introduzione
* Cosa occorre per iniziareInform e Glulx/Cosa occorre per iniziare
** Compilatore, interprete e altro ancora
** L'installazione
** Perché IF-IDE?
** Per chi non vuole (o non può) usare IF-IDE e Windows Frotz 2002
* Le basi di Inform
** A cosa serve questo capitolo?Inform e Glulx/Le basi di Inform/A cosa serve questo capitolo?
** Benvenuto in InformInform e Glulx/Le basi di Inform/Benvenuto in Inform
** Le funzioniInform e Glulx/Le basi di Inform/Le funzioni
** Variabili numeriche e caratteri specialiInform e Glulx/Le basi di Inform/Variabili numeriche e caratteri speciali
** Un po' di matematica non guasta maiInform e Glulx/Le basi di Inform/Un po' di matematica non guasta mai
** Passaggio dei parametri e ritorno dei valoriInform e Glulx/Le basi di Inform/Passaggio dei parametri e ritorno dei valori
** L'input dei dati numerici: l'istruzione GetnumberInform e Glulx/Le basi di Inform/L'input dei dati numerici: l'istruzione Getnumber
** If (condition) then... else...Inform e Glulx/Le basi di Inform/If (condition) then... else...
** While e do... untilInform e Glulx/Le basi di Inform/While e do... until
** For, break e continueInform e Glulx/Le basi di Inform/For, break e continue
** L'utilizzo delle costantiInform e Glulx/Le basi di Inform/L'utilizzo delle costanti
** Switch... caseInform e Glulx/Le basi di Inform/Switch... case
** Salti ed etichetteInform e Glulx/Le basi di Inform/Salti ed etichette
** Caratteri e stringheInform e Glulx/Le basi di Inform/Caratteri e stringhe
** I vettoriInform e Glulx/Le basi di Inform/I vettori
** Le stringhe numericheInform e Glulx/Le basi di Inform/Le stringhe numeriche
** Le direttiveInform e Glulx/Le basi di Inform/Le direttive
** Il debuggingInform e Glulx/Le basi di Inform/Il debugging
* RUINS, l'avventura comincia
** Il grande altopiano (dalla padella alla brace)Inform e Glulx/RUINS, l'avventura comincia/Il grande altopiano (dalla padella alla brace)
** La cassa d'imballaggio (riuscirete a riempirla tutta)?Inform e Glulx/RUINS, l'avventura comincia/La cassa d'imballaggio (riuscirete a riempirla tutta)?
** Il fungo (velenoso o non velenoso)?Inform e Glulx/RUINS, l'avventura comincia/Il fungo (velenoso o non velenoso)?
** Chi ha paura del buio (gli insetti no di certo)?Inform e Glulx/RUINS, l'avventura comincia/Chi ha paura del buio (gli insetti no di certo)?
** La porta di pietra (gialla è più carina)Inform e Glulx/RUINS, l'avventura comincia/La porta di pietra (gialla è più carina)
** La chiave di pietra (così non si arruginisce)Inform e Glulx/RUINS, l'avventura comincia/La chiave di pietra (così non si arruginisce)
** Il primo tesoro (speriamo che non sia un anello)Inform e Glulx/RUINS, l'avventura comincia/Il primo tesoro (speriamo che non sia un anello)
** La maschera facciale (non di carnevale)Inform e Glulx/RUINS, l'avventura comincia/La maschera facciale (non di carnevale)
** Il ritorno della mummia (non è un film, è tutto vero)Inform e Glulx/RUINS, l'avventura comincia/Il ritorno della mummia (non è un film, è tutto vero)
** L'incrocio di Xibalbá (ma è davvero così pauroso)?Inform e Glulx/RUINS, l'avventura comincia/L'incrocio di Xibalbá (ma è davvero così pauroso)?
** La sfera di pietra pomice (avete indossato il casco)?Inform e Glulx/RUINS, l'avventura comincia/La sfera di pietra pomice (avete indossato il casco)?
** Una gabbia per un facocero (e l'archeologo che fine ha fatto)?Inform e Glulx/RUINS, l'avventura comincia/Una gabbia per un facocero (e l'archeologo che fine ha fatto)?
** La cripta dei nove signori della notte (o sette come i nani)?Inform e Glulx/RUINS, l'avventura comincia/La cripta dei nove signori della notte (o sette come i nani)?
** Un archeologo per un facocero (basta solo che non grugnite)Inform e Glulx/RUINS, l'avventura comincia/Un archeologo per un facocero (basta solo che non grugnite)
** La fine di RUINS è giunta (ma con Inform siete solo all'inizio)Inform e Glulx/RUINS, l'avventura comincia/La fine di RUINS è giunta (ma con Inform siete solo all'inizio)
* Inform e ancora Inform
** La Status LineInform e Glulx/Inform e ancora Inform/La Status Line
** I menuInform e Glulx/Inform e ancora Inform/I menu
** I labirinti e i nomi pluraliInform e Glulx/Inform e ancora Inform/I labirinti e i nomi plurali
** Il tempoInform e Glulx/Inform e ancora Inform/Il tempo
** I coloriInform e Glulx/Inform e ancora Inform/I colori
** I mezzi di trasportoInform e Glulx/Inform e ancora Inform/I mezzi di trasporto
** Su e giù con l'ascensoreInform e Glulx/Inform e ancora Inform/Su e giù con l'ascensore
** Gli NPC (o PNG in italiano)Inform e Glulx/Inform e ancora Inform/Gli NPC (o PNG in italiano)
** Le estensioni (o librerie aggiuntive)Inform e Glulx/Inform e ancora Inform/Le estensioni (o librerie aggiuntive)
** Varie, listati e decompilatoreInform e Glulx/Inform e ancora Inform/Varie, listati e decompilatore
* Inform e Glulx
** Cos'è GlulxInform e Glulx/Inform e Glulx/Cos'è Glulx
** L'installazione di JifInform e Glulx/Inform e Glulx/L'installazione di Jif
** La compilazioneInform e Glulx/Inform e Glulx/La compilazione
** L'esecuzioneInform e Glulx/Inform e Glulx/L'esecuzione
** Da Inform a GlulxInform e Glulx/Inform e Glulx/Da Inform a Glulx
** La grafica e il sonoroInform e Glulx/Inform e Glulx/La grafica e il sonoro
** L'allineamento delle immaginiInform e Glulx/Inform e Glulx/L'allineamento delle immagini
** Avventure senza graficaInform e Glulx/Inform e Glulx/Avventure senza grafica
** I colori e gli stili del testoInform e Glulx/Inform e Glulx/I colori e gli stili del testo
** La personalizzazione della Status LineInform e Glulx/Inform e Glulx/La personalizzazione della Status Line
** output dei datiInform e Glulx/Inform e Glulx/L'input/output dei dati
** VarieInform e Glulx/Inform e Glulx/Varie
** GULL, il manuale ufficialeInform e Glulx/Inform e Glulx/GULL, il manuale ufficiale
* Appendici
** Appendice A - Le azioni principaliInform e Glulx/appendici/Appendice A - Le azioni principali
** Appendice B - I messaggi della libreriaInform e Glulx/appendici/Appendice B - I messaggi della libreria
** Appendice C - Gli errori della compilazioneInform e Glulx/appendici/Appendice C - Gli errori della compilazione
** Appendice D - La soluzione di RuinsInform e Glulx/appendici/Appendice D - La soluzione di Ruins
** Appendice E - Come usare Windows Frotz 2002Inform e Glulx/appendici/Appendice E - Come usare Windows Frotz 2002
** Appendice F - Le mappeInform e Glulx/appendici/Appendice F - Le mappe
** Appendice G - Scrivere, distribuire e reperire delle avventure testualiInform e Glulx/appendici/Appendice G - Scrivere, distribuire e reperire delle avventure testuali
Modifica il sommario

## I colori

Per quanto riguarda la gestione dei colori, l’istruzione SetColour per la selezione del colore del testo e dello sfondo richiede, nel suo utilizzo, certe attenzioni particolari. Il primo "cambio di colore" deve avvenire all’interno della funzione Initialise, anche se in effetti questa regola non è esclusiva poiché quest’istruzione può essere usata in un punto qualsiasi del listato. Tuttavia, per essere completamente sicuri che avvenga il cambio di colore almeno una volta, è meglio seguire la regola sopra citata:
Affinché l’istruzione SetColour abbia effetto, occorre impostare a 1 la variabile di libreria clr_on. Dal momento però, che non è detto che tutti gli interpreti supportino correttamente i colori (non bisogna mai dimenticare che Inform è linguaggio multipiattaforma - palmari compresi), e meglio far sì che Inform chieda prima al giocatore se desidera o no il loro supporto all’inizio del gioco; se quest’ultimo risponde alla domanda premendo i tasti s e invio, i colori vengono attivati (la variabile di libreria clr_on viene cioè posta uguale a 1), altrimenti (se il giocatore preme cioè i tasti n e invio) rimangono attivi quelli di default (la variabile di libreria clr_on vale 0 e vengono di conseguenza ignorate da Inform tutte le istruzioni relative ad essi). In Inform, inoltre, a ogni colore corrispondono un numero e una costante, come mostrato nella seguente tabella:
| DEFAULT | 1 | CLR_DEFAULT |
| NERO | 2 | CLR_BLACK |
| ROSSO | 3 | CLR_RED |
| VERDE | 4 | CLR_GREEN |
| GIALLO | 5 | CLR_YELLOW |
| BLU | 6 | CLR_BLUE |
| MAGENTA | 7 | CLR_MAGENTA |
| CIANO | 8 | CLR_CYAN |
| BIANCO | 9 | CLR_WHITE |
| VIOLA | 7 | CLR_PURPLE |
| AZZURRO | 8 | CLR_AZURE |
I due valori assegnati all’istruzione SetColour rappresentano rispettivamente il colore del testo (il 9 o CLR_WHITE) e dello sfondo (il 2 o CLR_BLACK); non è difficile, a questo punto, capire che il numero nove rappresenta il colore bianco e il numero due il colore nero. Volendo poi cambiare il colore di una o più parole, ecco cosa si deve fare:
ottenendo così il seguente risultato:
Per cambiare il colore del testo della descrizione di un oggetto occorre modificare la proprietà description nel seguente modo:
Il risultato potete vederlo nella figura che segue:
Partendo dal presupposto che i colori di default siano il bianco per il testo e il nero per lo sfondo, all’interno della proprietà description dell’oggetto interessato si richiama una o più volte l’istruzione SetColour mantenendo il colore dello sfondo di default (2) e cambiando invece il colore del testo (in questo caso prima 4 e poi 5), ripristinando poi il tutto al bianco e al nero (evitando così che il testo che segue resti in giallo). Quando si lavora con i colori, occorre quindi definire sempre quelli di default all’interno della funzione Initialise. Il terzo numero (il 2), presente in entrambe le istruzioni, dice a Inform che il cambio di colore deve riguardare solo la finestra principale. Usando invece il numero 1, il cambio di colore avviene solo nella status line; se invece non si mette nulla, il cambio di colore avviene per entrambe (la status line e la finestra principale).
Un altro utilizzo abbastanza comune dei colori nelle avventure testuali, è quello di cambiare il colore dello sfondo e del testo al cambio di locazione o di sezione. Ecco allora una possibile implementazione:
Se il giocatore si trova nella Sala Quadrata e si dirige verso sud, viene effettuata la chiamata alla funzione Changecolor che cambia il colore del testo da bianco a giallo e il colore dello sfondo da nero a blu:
Quando il giocatore torna indietro verso la Sala Quadrata, viene effettuata una seconda chiamata alla funzione Changecolor che ripristina i colori di default:
L’istruzione ClearScreen, si rende necessaria nella funzione Changecolor perché viene cambiato anche il colore dello sfondo (a condizione, ovviamente, che i colori siano attivi). Se dobbiamo invece cambiare solo il colore del testo, occorre allora riscrivere la funzione Changecolor nel seguente modo:
Eliminando l’istruzione ClearScreen e mantenendo il nero come colore di sfondo, il problema è risolto; provare per credere...

## Note

* ↑ L’istruzione yesorno risponde solo alle lettere s (o si) e n (o no). Se si vogliono usare anche le altre, occorre rifarsi all’istruzione ReadChar, da me creata e descritta nel capitolo 3.
* ↑ Cliccate qui per scaricare i listati di questi esercizi (i file 5.04_1.inf, 5.04_2.inf, 5.04_3.inf e 5.04_4.inf).