Inform e Glulx/Inform e ancora Inform/I menu

Indice del libro

Passiamo adesso ai menu:

.
.
.
[ DeathMessage...

[ HelpSub; DoMenu("Ecco il menu:^ ^ Informazioni ^ Scopo del gioco ^ L'autore ^ Ringraziamenti^", HelpMenu, HelpInfo); ];
[ HelpMenu; if (menu_item == 0) { item_width=2; item_name="RUINS"; return 4; } if (menu_item == 1) { item_width=7; item_name="Informazioni"; } if (menu_item == 2) { item_width=8; item_name="Scopo del gioco"; } if (menu_item == 3) { item_width=4; item_name="L'autore"; } if (menu_item == 4) { item_width=7; item_name="Ringraziamenti"; } ];
[ HelpInfo; if (menu_item == 1) {print "Sei un intrepido archeologo alla ricerca di tesori perduti. Indiana Jones non @`e nessuno paragonato a te.^^"; } if (menu_item == 2) {print "Riportare il numero pi@`u alto possibile di manufatti alla fondazione Carneige...^^"; } if (menu_item == 3) {print "Quest'avventura @`e stata scritta da Graham Nelson che ringrazier@`o in eterno per avermi dato il permesso di tradurla in italiano.^^"; } if (menu_item == 4) {print "Ringrazio immensamente Raffaello Valesio per l'aiuto datomi nella traduzione di Ruins; Massimo Pinna e Fulvio Ghiringhello per il betatesting.^^"; } ]; . . . Include "ItalianG"; . . . Verb 'fotografa' * noun -> Photograph; Verb 'aiuto' 'help' * -> Help;

Inform dà la possibilità di usufruire d’aiuti più complessi (e completi) rispetto a quelli visti alla fine del quarto capitolo. Un menu è costituito da tre funzioni principali: HelpSub (che rappresenta l’interfaccia principale attraverso la quale è possibile scegliere l’opzione interessata), HelpMenu (al cui interno vengono definite le caratteristiche d’ogni singola opzione) e HelpInfo (al cui interno vengono definiti i contenuti di ogni singola opzione). Per capire meglio quanto sto dicendo, vediamolo "all’opera"[1]:

 

Dopo aver digitato il comando "aiuto" e aver premuto il tasto di Invio, ecco quello che appare:

 

Questa è l’interfaccia principale. Adesso abbiamo a disposizione quattro opzioni (ma ce ne possono essere ovviamente molte di più) da selezionare ed esplorare. A livello di codice, bisogna assicurarsi che alla fine della prima riga della funzione HelpMenu venga restituito il numero di opzioni definite (nel nostro caso quattro). Una volta scelta l’opzione attraverso i tasti cursore[2] e aver premuto il tasto di Invio, è possibile leggere il suo contenuto:

 

Premendo la barra spaziatrice si ritorna al menu principale. A questo punto è possibile continuare a selezionare delle altre opzioni o ritornare al gioco:

 

Ricordatevi che il valore numerico contenuto nella variabile locale item_width determina la posizione del testo contenuto nella variabile locale item_name; occorre inoltre notare, che il sistema di creazione "standard" dei menu che abbiamo appena visto è ormai obsoleto (anche se comunque perfettamente funzionante e presente in diversi listati) e conviene quindi rifarsi all’utilizzo della libreria dmenus.h[3].

  1. Cliccate qui per scaricare il listato di questo esercizio (il file 5.02.inf).
  2. Per chi non lo sapesse, sono i quattro tasti presenti sulla vostra tastiera contrassegnati dalle freccette.
  3. Ulteriori informazioni sul suo utilizzo potete trovarle alla fine di questo capitolo.