Inform e Glulx/Inform e Glulx/I colori e gli stili del testo

Indice del libro

I colori e gli stili del testo

modifica

Esaminiamo ora il quarto esempio (sgw_test_it_STYLE):

Constant Story "Test per sgw";
Constant Headline
            "^Simple Glulxe Wrapper (sgw)
            ^di Alessandro Schillaci^^";

Constant NOGRAPHICS; Constant NOSOUND;
Constant SCBACK CLR_GG_BLACK; Constant SCTEXT CLR_GG_WHITE; Constant SCEMPH CLR_GG_YELLOW; Constant SCHEAD CLR_GG_RED; Constant SCINPU CLR_GG_ORANGE;
Include "Parser"; Include "sgw.h"; ! Inclusione della libreria SGW Include "Infglk"; Include "VerbLib"; Include "Replace"; Include "sgw_test_it_STYLE.bli"; ! ---------------------------------------------------------------------- Object room_1 "room 1" with description [; print (s_emph) "Emphasized", "^"; print (s_bold) "Bold", " (come in Inform)^"; print (s_pref) "Preformatted", "^"; print (s_fixed) "Fixed", " (come in Inform)^"; print (s_head) "Header", "^"; print (s_subhead) "Subheader", "^"; print (s_alert) "Alert", "^"; print (s_reverse) "Reverse", " (come in Inform)^"; print (s_note) "Note", "^"; print (s_underline) "Underline/Italic", " (come in Inform)^"; print (s_block) "BlockQuote", "^"; print (s_input) "Input", "^"; ], has light; ! ---------------------------------------------------------------------- [ Initialise; initializeSGW(0); location = room_1; ];
! ---------------------------------------------------------------------- Include "ItalianG";

Il risultato che si ottiene è il seguente:

 

ovvero un esercizio che illustra alcuni colori e tutti gli stili del testo che si possono ottenere con Glulx. Per quanto riguarda invece i primi, questa estensione ne prevede di default ben dodici:

 ARANCIONE   CLR_GG_ORANGE 
 AZZURRO   CLR_GG_AZURE 
 BIANCO   CLR_GG_WHITE 
 BLU   CLR_GG_BLUE 
 CIANO   CLR_GG_CYAN 
 GIALLO   CLR_GG_YELLOW 
 GRIGIO   CLR_GG_GREY 
 MAGENTA   CLR_GG_MAGENTA 
 MARRONE   CLR_GG_BROWN 
 NERO   CLR_GG_BLACK 
 ROSA   CLR_GG_PINK 
 ROSSO   CLR_GG_RED 
 VIOLA   CLR_GG_PURPLE 
 VERDE   CLR_GG_GREEN 

Anche se i colori mostrati in questa tabella sono quattordici, in realtà il magenta e il ciano sono gli equivalenti rispettivamente del viola e dell’azzurro. A ogni modo, le costanti alle quali è possibile assegnarli, sono sei[1]:

  Constant SCBACK CLR_GG_BLACK;
  Constant SCTEXT CLR_GG_WHITE;
  Constant SCEMPH CLR_GG_YELLOW;
  Constant SCHEAD CLR_GG_RED;
  Constant SCINPU CLR_GG_ORANGE;
  Constant SCSOFT CLR_GG_BLUE;

La prima (SCBACK), controlla il colore dello sfondo; la seconda (SCTEXT) controlla i colori del testo normale e nello stile alert/reverse; la terza (SCEMPH) controlla i colori del testo negli stili emphasized/bold (il grassetto) e header (il titolo del gioco); la quarta (SCHEAD) controlla i colori del testo nello stile subheader (il titolo della stanza); la quinta (SCINPU) controlla i colori del testo negli stili preformatted/fixed, note/underline (il corsivo), blockquote e input (il testo digitato dal giocatore); la sesta (SCSOFT) controlla i colori degli stili personalizzati (che sono usati molto di rado).

 

Oltre ai colori standard, e possibile definirne molti altri. Glulx, infatti, prevede che questi siano dichiarati nel formato esadecimale come nel seguente esempio:

  Constant SCBACK $110101;
  Constant SCTEXT $DDBB99;
  Constant SCSOFT $665544;
  Constant SCEMPH $FFFFDD;
  Constant SCHEAD $EEDDAA;
  Constant SCINPU $DDEEAA;

che ripristina i colori originali dei primi tre esempi. Non preoccupatevi comunque: ogni buon programma di grafica infatti[2], riporta sulla sua tavolozza dei colori anche il valore esadecimale di ogni colore da voi selezionato o creato con essa.

 

E per quanto riguarda gli stili del testo? Diamo un’occhiata più da vicino all’oggetto Room1:

Object room_1 "room 1"
  with description [;
             print (s_emph) "Emphasized", "^";
             print (s_bold) "Bold", " (come in Inform)^"; 
             print (s_pref) "Preformatted", "^";
             print (s_fixed) "Fixed", " (come in Inform)^";
             print (s_head) "Header", "^";
             print (s_subhead) "Subheader", "^";
             print (s_alert) "Alert", "^";
             print (s_reverse) "Reverse", " (come in Inform)^"; 
             print (s_note) "Note", "^";
             print (s_underline) "Underline/Italic", " (come in 
                                  Inform)^";
             print (s_block) "BlockQuote", "^";
             print (s_input) "Input", "^";
       ],                    
  has  light;

Lo stile Emphasized è stampato a video dalla funzione di stampa (s_emph); lo stile Bold (equivalente a Emphasized) da (s_bold); lo stile Preformatted da (s_pref); lo stile Fixed (equivalente a Preformatted) da (s_fixed); lo stile Header da (s_head); lo stile Subheader da (s_subhead); lo stile Alert da (s_alert); lo stile Reverse (equivalente ad Alert) da (s_reverse); lo stile Note da (s_note); lo stile Underline (equivalente a Note) da (s_underline); lo stile BlockQuote da (s_block); lo stile Input, infine, da (s_input).

  1. La gestione dei colori in Glulx è diversa da Inform; qui infatti, la variabile clr_on (usata da quest’ultimo per stabilire se attivare o meno i colori come spiegato nel quinto capitolo) è totalmente ignorata.
  2. Uno di questi è sicuramente Paint Shop Pro della Jasc Software, che vi consiglio assolutamente di provare.