Inform e Glulx/Inform e ancora Inform/Gli NPC (o PNG in italiano): differenze tra le versioni

m
Bot: sostituzione tag obsoleti
m (Bot: sintassi dei link)
m (Bot: sostituzione tag obsoleti)
 
{| style="width:100%;" class="wikitable"
|<ttcode>La signora Bindi<br>
di Vincenzo Scarpa e Paolo Lucchesi<br>
Avventura d'esempio per gestire un NPC.<br><br>
Non credi che la signora Bindi sia interessata alle tue attenzioni.<br><br>
>chiedi alla signora Bindi del giornale<br>
"È il giornale di oggi."</ttcode>
|}
 
La signora Bindi è il nostro PNG per eccellenza, poiché reagisce ai comandi "sociali" (grazie alla proprietà <ttcode>life</ttcode> che in un oggetto di questo tipo deve essere sempre presente). Ma non è finita:
 
{| style="width:100%;" class="wikitable"
|<ttcode>>z<br>
Il tempo passa.<br><br>
>z<br>
Il tempo passa.<br><br>
La signora Bindi si dirige verso est.<br><br>
></ttcode>
|}
 
 
{| style="width:100%;" class="wikitable"
|<ttcode>>e<br><br>
Corridoio<br><br>
Puoi vedere la signora Bindi qui.<br><br>
>chiedi alla signora Bindi del pomodoro<br>
"Dovrei fare più attenzione a quello che faccio. A volte sono così distratta..."<br><br>
></ttcode>
|}
 
 
{| style="width:100%;" class="wikitable"
|<ttcode>Soggiorno<br>
Questa è una stanza molto grande. Alla tua sinistra, una finestra dà sulla strada e davanti a te puoi vedere un grosso tavolo in noce circondato ai lati da quattro sedie.<br><br>
C'è la signora Bindi qui, seduta sul sofà.<br><br>
"È il giornale di oggi."<br><br>
La signora Bindi si dirige verso nord.<br><br>
></ttcode>
|}
 
 
{| style="width:100%;" class="wikitable"
|<ttcode>Cucina<br>
Questa è la cucina della signora Bindi, piuttosto stretta ma completa.<br><br>
Puoi vedere un frigorifero (che è chiuso) e una forchetta qui.<br><br>
>esamina il frigorifero<br>
È tutto sporco di sugo di pomodoro.<br><br>
></ttcode>
|}
 
Prima del suo arrivo, il frigorifero in questione è pulito e chiuso. Noi lo apriamo, e quando lei arriva in cucina, lo chiude e lo sporca. Un PNG può quindi modificare anche lo stato di uno o più oggetti che non devono, tra l’altro, trovarsi necessariamente nella stanza in cui esso si trova (grazie all’istruzione <ttcode>objectloop</ttcode> spiegata nel [[Inform e Glulx/RUINS, l'avventura comincia/L'incrocio di Xibalbá (ma è davvero così pauroso)?|paragrafo 4.10]]). Senza contare che, tramite l’istruzione <ttcode>move</ttcode>, può addirittura prenderli e spostarli (si potrebbe, per assurdo, far sì che al suo arrivo in cucina, la signora Bindi prendesse - se presente - la forchetta e la mettesse nel frigorifero). A ogni modo, al ventiduesimo turno il nostro PNG esce dalla cucina ritornando nuovamente al soggiorno:
 
{| style="width:100%;" class="wikitable"
|<ttcode>Cucina<br>
Questa è la cucina della signora Bindi, piuttosto stretta ma completa.<br><br>
La signora Bindi è qui, intenta a fare le pulizie. Non sembra essere molto contenta.<br><br>
>chiedi alla signora Bindi del frigorifero<br>
È di nuovo pulito ora.<br><br>
></ttcode>
|}
 
Il frigorifero adesso è di nuovo pulito e sono tutti felici e contenti<ref>La creazione di movimenti relativamente sofisticati per i personaggi non giocatori può essere semplificata con l’utilizzo della libreria <ttcode>MoveClass.h</ttcode>. Ulteriori informazioni sul suo utilizzo potete trovarle nel prossimo paragrafo.</ref>.
 
Diamo ora un’occhiata al codice (molto meno difficile di quello che a prima vista potrebbe forse sembrare):
];
 
All’inizio, diamo la locazione di partenza del gioco, la posizione iniziale del nostro PNG e facciamo partire il daemon <ttcode>Timerdaemon</ttcode>:
 
Object Timerdaemon
has female animate;
 
la proprietà describe permette a Inform di stampare a video delle frasi personalizzate a seconda di dove il nostro PNG si trova. La proprietà <ttcode>life</ttcode>, come abbiamo già detto, stabilisce come esso reagisce ai comandi sociali; in particolare, occorre notare le diverse risposte che esso dà quando il giocatore gli chiede delle informazioni inerenti al frigorifero: se, infatti, la signora Bindi non è ancora uscita dalla cucina viene stampato a video il messaggio "<ttcode>"Dovrei fare più attenzione a quello che faccio. A volte sono così distratta..."</ttcode>", mentre se è invece uscita viene stampato a video il messaggio "<ttcode>"È di nuovo pulito ora."</ttcode>". La proprietà <ttcode>daemon</ttcode> gestisce invece il movimento del PNG dove, a seconda del valore della variabile path e della locazione in cui esso si trova, viene chiamata la funzione <ttcode>percorso_npc</ttcode> alla quale occorre passare come parametri l’oggetto stesso (<ttcode>self</ttcode>) e la direzione verso la quale il PNG deve dirigersi. Per quanto riguarda, infine, il frigorifero:
 
Object -> frigorifero "frigorifero"
9 212

contributi