Inform e Glulx/Inform e ancora Inform/I menu
I menu
modificaPassiamo 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].
Note
modifica- ↑ Cliccate qui per scaricare il listato di questo esercizio (il file 5.02.inf).
- ↑ Per chi non lo sapesse, sono i quattro tasti presenti sulla vostra tastiera contrassegnati dalle freccette.
- ↑ Ulteriori informazioni sul suo utilizzo potete trovarle alla fine di questo capitolo.