Inform e Glulx/Inform e ancora Inform/Le estensioni (o librerie aggiuntive)/easydoors.h

Wikibooks, manuali e libri di testo liberi.
Indice del libro

easydoors.h[modifica]

L'easydoors.h (scritta da Andrew MacKinnon), ci permette anch’essa (come con la doors.h) di semplificare la gestione di una door, ma con delle caratteristiche in più. Per usarla, occorre scaricare il file estensioni_inform.zip[1], decomprimere quest’ultimo in una directory qualsiasi, andare nella directory easydoors, copiare il file easydoors_it.h in "C:\Inform\libraries" (se state usando WIDE) o "C:\Programmi\Jif\lib\Contrib" (se state usando Jif) e, infine, copiare il file easydoors_it_test.inf in "C:\Inform" (se state usando WIDE) o "C:\Programmi\Jif\Games" (se state usando Jif). Vediamo adesso come funziona:

EASYDOORS_IT - TEST
Un esempio di utilizzo della easydoors_it.h

Versione 1 -- Numero di serie 050825
Inform v6.30 -- Libreria 6/11  --  Infit v2.5    S

La Stanza A
Sei nella stanza A.

La porta di legno è chiusa.

>esamina la porta
È solo una vecchia porta di legno.

>apri la porta
Sembra essere chiusa a chiave.

>i
Stai portando:
 una grossa chiave
>apri la porta con la chiave
Ora la porta di legno non è più chiusa a chiave.

>o
(aprendo la porta di legno)

La Stanza B
Sei nella stanza B.

La porta di legno è aperta.

>

Avete notato cosa accade quando il giocatore si dirige a ovest? La porta, pur essendo ancora chiusa, viene aperta da Inform in automatico. Vediamo allora il codice relativo a quest’oggetto:

Doorway Porta "porta di legno"
   with name 'porta' 'vecchia' 'legno',
        description
            "@`E solo una vecchia porta di legno.",
        side1_to StanzaB,
        side1_dir w_to,
        side2_to StanzaA,
        side2_dir e_to,
        opendesc "aperta",   
        closeddesc "chiusa", 
        isconcealed 0, 
        autoopen 1,        
        with_key chiave,
        found_in StanzaA StanzaB,
    has female static openable lockable locked;

per far sì che l’apertura della porta avvenga in maniera automatica, la proprietà autoopen deve necessariamente valere 1; se vale 0, si deve aprire "manualmente" (inserendo cioè, come già sappiamo, il comando "apri la porta" dopo averla sbloccata con la chiave). La proprietà isconcealed, invece, stabilisce se la descrizione della porta debba apparire nella stanza (valore 0) oppure no (valore 1). Le proprietà opendesc e closeddesc rappresentano infine i messaggi di default relativi allo stato della porta (se è cioè aperta o chiusa) e non devono mai essere modificati tranne quando l’oggetto di tipo door a cui fanno riferimento è maschile (come ad esempio un cancello); in questo caso, occorre assegnare la stringa "aperto" alla proprietà opendesc e "chiuso" alla proprietà closeddesc.

E se volessimo ampliare la descrizione dello stato della nostra porta? Basta ricorrere alla proprietà describe:

Doorway Porta "porta di legno"
   with name 'porta' 'vecchia' 'legno',
        description
            "@`E solo una vecchia porta di legno.",
        describe [;
            print "^Puoi vedere una porta di legno ";
            if (self has open) print "aperta ";
            if (self hasnt open) print "chiusa ";
            print "qui.^";
        ],
        side1_to StanzaB,
        side1_dir w_to,
        side2_to StanzaA,
        side2_dir e_to,
        autoopen 1, 
        with_key chiave,
        found_in StanzaA StanzaB,
    has female static openable lockable locked;

che porta al seguente risultato:

EASYDOORS_IT - TEST
Un esempio di utilizzo della easydoors_it.h

Versione 1 -- Numero di serie 050825
Inform v6.30 -- Libreria 6/11  --  Infit v2.5    S

La Stanza A
Sei nella stanza A.

Puoi vedere una porta di legno chiusa qui.

>esamina la porta
È solo una vecchia porta di legno.

>o
Non puoi, la porta di legno è in quella direzione.

>apri la porta con la chiave
Ora la porta di legno non è più chiusa a chiave.

>o
(aprendo la porta di legno)

La Stanza B
Sei nella stanza B.

Puoi vedere una porta di legno aperta qui.

>

Note[modifica]

  1. Questo file (così come listati_inform.zip) è soggetto a continui aggiornamenti da parte del sottoscritto. Quindi, di tanto in tanto, scaricatelo per verificare al suo interno i nuovi contenuti (se presenti).