Come Possiamo Aiutarti Oggi?

Ricerca

Telefonia: Offerte
Telefonia: Guide
Informatica
Internet
Elettronica
Corsi
Tv Online
Tutti i Servizi
Computer > Adventure_Click

Come Creare un'Avventura Testuale Punta e Clicca per qualsiasi Dispositivo | TeleTec.it

Data di publicazione: 26.04.2020 - 12:04:14
Come Creare un'Avventura Testuale Punta e Clicca per qualsiasi Dispositivo Alla scoperta di Adventure Click 2020, lo strumento semplice per realizzare le tue avventure testuali punta e clicca.


Introduzione
Adventure Click 2020 - Realizzare Avventure Testuali Punta e Clicca
Grazie ad Adventure Click potrai creare la tua avventura testuale per qualsiasi dispositivo, sia fisso, che mobile.

Contenuto

Come Creare un'Avventura con Adventure Click 2020

Prima di intraprendere questa avventura, per realizzare un'Avventura con Adventure Click, facciamo alcune considerazioni per spiegare meglio il concetto alla base di Adventure Click e forniamo al tempo stesso alcune spiegazioni, per comprendere meglio come funziona, iniziando proprio dalla struttura di un'avventura.

Adventure Click permette di creare avventure punta e clicca in HTML e questo di fatto le rende compatibili con qualsiasi dispositivo, con qualsiasi Web Browser moderno, a qualsiasi risoluzione e con qualsiasi sistema operativo (Windows, Linux, Mac, Android, iOS, etc...).

Un'avventura in Adventure Click è strutturata in questo modo:

- Una Location, chiamata #Stanza;
- Il titolo della Location;
- La descrizione della Location;
- I collegamenti verso altre Locations;
- Le condizioni o le azioni che si possono fare all'interno di essa;

Facciamo subito un esempio pratico:

#Stanza_1
.titolo "Una fredda cantina"
.testo "Ti trovi all'interno di una cantina fredda e buia."
.acapo
.testo "Qui puoi vedere una "
.collega "porta", "2"
.testo " che conduce ad una stanza segreta."
#Fine

#Stanza_2
.titolo "Stanza segreta"
.testo "Una stanza vuota, non c'è altro."
.acapo
.testo "Puoi tornare nella "
.collega "cantina", "1"
#Fine

Questo sommariamente è il codice di Adventure Click. Da notare che ogni istruzione inizia con un punto (.), in questo modo le istruzioni non verranno mai confuse con il testo utilizzato dal programmatore durante la creazione dell'avventura, in quanto '.testo' è diverso dalla parola 'testo' ed entrambi verranno trattate dal programma in modo differente.

.testo verrà processato per visualizzare il testo della stanza.

Ogni testo è racchiuso tra i doppi apici (tasti Shift+2 dalla tastiera). Se vogliamo inserire un apice all'interno del testo possiamo utilizzare il backslash in questo modo:

.testo "Lei disse \"che non era saggio\" procedere per quella direzione."

Istruzioni e Funzioni

Le istruzioni all'interno di Adventure Click sono delle parole chiavi, dette anche Alias, che a loro volta richiamano una funzione. Il loro compito è quello di facilitare l'inserimento delle varie funzionalità. Ad esempio, l'istruzione '.testo' corrisponde in realtà alla funzione tx("");

.testo "Ti trovi in un atrio"
.tx("Ti trovi in un atrio") ;

Sono la stessa cosa, ma questa è solo una curiosità che non ha nulla a che fare con la creazione di un'avventura!

Analizziamo quindi le istruzioni incontrate fino ad ora:

.titolo "Stanza segreta"
E' il titolo mostrato per la stanza

.testo "Una stanza vuota, non c'è altro."
Descrive cosa c'è all'interno della stanza

.acapo
Crea un ritorno a capo

.collega "cantina", "1"
Collega la parola 'cantina' alla stanza numero 1.

Le stanze hanno infatti un numero sequenziale ed univoco e vengono chiuse dalla parola #Fine

#Stanza_1
...
#Fine

#Stanza_2
...
#Fine

#Stanza_3
...
#Fine

Chiaro e facile fino a qui, no?
Con questo semplice sistema è già possibile creare delle semplici avventure punta e clicca a bivio o dei Libri Gioco digitali.

Variabili

Le Variabili in Adventure Click sono dei piccoli frammenti di memoria in grado di memorizzare un valore e renderlo disponibile per fare una determinata azione. Supponiamo che il giocatore entri nella Stanza 1, poi va alla Stanza 2 ed infine ritorni alla Stanza 1. Una volta ritornato alla Stanza 1 deve essere mostrato comunque un testo differente. Come abbiamo già visto in precedenza, con il sistema proposto in precedenza, potremo fare la cosa aggiungendo una terza Stanza ed il gioco tornerà in realtà alla Stanza 3, anziché alla Stanza 1. Esempio:

#Stanza_1
.titolo "Una fredda cantina"
.testo "Ti trovi all'interno di una cantina fredda e buia."
.acapo
.testo "Qui puoi vedere una "
.collega "porta", "2"
.testo " che conduce ad una stanza segreta."
#Fine

#Stanza_2
.titolo "Stanza segreta"
.testo "Una stanza vuota, non c'è altro."
.acapo
.testo "Puoi tornare nella "
.collega "cantina", "3"
#Fine

#Stanza_3
.titolo "Una fredda cantina"
.testo "Nella "Stanza Segreta" non c'era proprio nulla di interessante."
.acapo
.testo "Ti trovi all'interno di una cantina fredda e buia."
.acapo
.testo "Qui puoi vedere una "
.collega "porta", "2"
.testo " che conduce ad una stanza segreta."
#Fine

Si crea dunque una stanza alternativa, la Stanza 3 appunto, che mostra nuove informazioni.

Se da un lato questo sistema può essere semplice e alla portata di tutti, dall'altro lato obbliga a creare nuove stanze e in un'avventura più complessa se ne dovrebbero creare talmente tante, per fare alla fine sempre la stessa cosa.

Esempio di combinazioni:
1) 2 X 1 = 2
2) 2 X 2 = 4
3) 4 x 2 = 8
4) 8 x 2 = 16
5) 16 x 2 = 32
6) 32 x 2 = 64
7) 64 x 2 = 128
8) 128 x 2 = 256
9) 256 x 2 = 512
10) 512 x 2 = 1024

Questo specchietto ci mostra che se volessimo mettere 10 stanze con altrettante 'stanze alternative' per coprire un solo puzzle ci vorrebbero 1024 stanze. In realtà ci sono dei trucchi per superare questo ostacolo, ad esempio creando degli enigmi solo in zone localizzate, ma dato che abbiamo le Variabili possiamo risolvere questo problema in modo differente, vediamo come.

Esempio con le Variabili
In questo esempio il giocatore andrà nella stanza segreta, poi tornerà nella cantina e vedrà il primo messaggio, poi tornerà ancora nella stanza segreta e quando tornerà nella cantina vedrà un secondo messaggio:

Dichiariamo una variabile in questo modo:

.variabile = ["0"]

Questa varibile è la variabile zero che al suo interno contiene il valore zero. Le variabili iniziano con zero e continuano in sequenza numerica. Esempio:

.variabile = ["0", "1", "5", "7", "2"]

Ecco come le interpreta in Adventure Click

variabile 0 = "0"
variabile 1 = "1"
variabile 2 = "5"
variabile 3 = "7"
variabile 4 = "2"

Per evitare confusioni Adventure Click ha bisogno che siano inserite tra delle parentesi quadre, diventano quindi così:

variabile[0] = "0"
variabile[1] = "1"
variabile[2] = "5"
variabile[3] = "7"
variabile[4] = "2"

e per evitare confusioni al programmatore, come abbiamo già visto in precedenza con altre istruzioni, verranno aggiunti i punti iniziali. Quindi in definitiva diventano così:

.variabile[0] = "0"
.variabile[1] = "1"
.variabile[2] = "5"
.variabile[3] = "7"
.variabile[4] = "2"

Tutto chiaro fino a qui?
Bene, allora passiamo all'esempio pratico:

.variabile = ["0"]

#Stanza_1
.titolo "Una fredda cantina"
.testo "Ti trovi all'interno di una cantina fredda e buia."
:s .se (.variabile[0]=="1") .allora .testo("Nella "Stanza Segreta" non c'era proprio nulla di interessante."); :Fine
:s .se (.variabile[0]=="2") .allora .testo("Non c'è proprio nulla di interessante."); :Fine
.acapo
.testo "Qui puoi vedere una "
.collega "porta", "2"
.testo " che conduce ad una stanza segreta."
#Fine

#Stanza_2
.titolo "Stanza segreta"
.testo "Una stanza vuota, non c'è altro."
.acapo
.testo "Puoi tornare nella "
.collega "cantina", "1"
:s .variabile[0]++;
#Fine

Le righe che ci interessano sono le seguenti.

Nella Stanza 1:

:s .se (.variabile[0]=="1") .allora .testo("Nella "Stanza Segreta" non c'era proprio nulla di interessante."); :Fine

:s .se (.variabile[0]=="2") .allora .testo("Non c'è proprio nulla di interessante.");

Nella Stanza 2:

:s .variabile[0]++;

Analizziamole:

:s
Indica ad Adventure Click che la riga contiene un riferimento alle Funzioni;

.se
(IF) è la condizione che si deve verificare per succedere qualcosa;

.variabile[0] == "1" oppure .variabile[0] == "2"
Se la variabile[0] diventa 1, viene mostrato il primo messaggio;
Se la variabile[0] diventa 2, viene mostrato il secondo messaggio;

.allora
Se si verificare una delle 2 condizioni ALLORA... accade qualcosa;

.testo("...");
Viene mostrato il testo all'interno degli doppi apici. Da notare che in questo caso ci sono anche le parentesi, proprio perché siamo all'interno di una funzione e l'istruzione .Testo va chiusa con un punto e virgola.

:Fine
Indica che la procedura di :S + .SE è conclusa.


Analizziamo ora quello che avviene nella Stanza 2:

:s .variabile[0]++;

:s
Come in precedenza, indica ad Adventure Click che la riga contiene un riferimento alle Funzioni;

.variabile[0]++;
Aggiunge un +1 alla Variabile zero, che di volta in volta diventerà così:

variabile[0] = 1
variabile[0] = 2
variabile[0] = 3
variabile[0] = 4
variabile[0] = 5

Anche in questo caso l'istruzione va chiusa con un punto e virgola
In questo caso, dato che non è presente nessun SE...ALLORA, non occorre mettere l'istruzione :Fine a fine riga.

All'inizio potrebbe sembrare un meccanismo complicato, ma non lo in quanto non muta nel tempo, quindi si può dire che è sempre lo stesso. Basta copiarlo ed incollarlo dove serve. Ovviamente possiamo fare la stessa cosa per altri scopi, come ad esempio far sì che sia il link a cambiare o che richiami in automatico una nuova Stanza. Vediamo alcuni esempi.

In questo esempio anziché mostrare il testo facciamo andare il giocatore alla Stanza 3 tramite link:

.variabile = ["0"]

#Stanza_1
.titolo "Una fredda cantina"
.testo "Ti trovi all'interno di una cantina fredda e buia."
.acapo
.testo "Qui puoi vedere una "
:s .se (.variabile[0]=="0") .allora .Collega("porta", "2"); :Fine
:s .se (.variabile[0]>="1") .allora .Collega("porta", "3"); :Fine
.testo " che conduce ad una stanza segreta."
#Fine

#Stanza_2
.titolo "Stanza segreta"
.testo "Una stanza vuota, non c'è altro."
.acapo
.testo "Puoi tornare nella "
.collega "cantina", "1"
:s .variabile[0]++;
#Fine

#Stanza_3
...
#Fine

Se la variabile è zero il link "Porta" conduce alla Stanza 2, mentre se la variabile assume un valore uguale o maggiore di 1, allora il link condurrà alla Stanza 3.

In questo esempio invece faremo la conoscenza dell'istruzione 'vai(stanza)' che può tornarci utile quando vogliamo che il giocatore vada in automatico in una nuova stanza, senza che clicchi sopra ad un collegamento:

.variabile = ["0"]

#Stanza_1
.titolo "Una fredda cantina"
.testo "Ti trovi all'interno di una cantina fredda e buia."
.acapo
.testo "Qui puoi vedere una "
.collega "porta", "2"
.testo " che conduce ad una stanza segreta."
:s .se (.variabile[0]>="1") .allora .vai(3); :Fine
#Fine

#Stanza_2
.titolo "Stanza segreta"
.testo "Una stanza vuota, non c'è altro."
.acapo
.testo "Puoi tornare nella "
.collega "cantina", "1"
:s .variabile[0]++;
#Fine

#Stanza_3
...
#Fine

Se la variabile quindi è maggiore o uguale a 1, verrà chiamata la Stanza 3 in automatico e il gioco continua da quella stanza.

Infine, le variabili possono essere settate anche manualmente. Abbiamo visto che nel caso dell'istruzione '.variabile[0]++' viene aumentato di una unita' per volta il valore di una variabile, ma possiamo creare qualsiasi stato, ci basterà scrivere:

.variabile[0] = "100"

Ed ora il nuovo valore è 100.

Per finire, alcune cose importanti.
- E' consigliabile, ma non obbligatorio, scrivere in minuscolo il nome di tutte le istruzioni.
- Tutto quello che viene dichiarato nella riga che inizia con ':s' deve rimanere nella stessa riga:

:s .se ... .allora .testo("Ciao Mondo); :fine

Non può essere dichiarato su più righe per come avviene con altri linguaggi, perché non funzionerebbe, come in questo caso:

:s
.se ... .allora
.testo("Ciao Mondo);
:fine



Oggetti Mobili

In un'avventura ci sono Oggetti Fissi, che non possono essere trasportati dal giocatore, come può esserlo ad esempio una porta o una cassaforte ed Oggetti Mobili che possono essere presi dal giocatore, aggiunti nell'inventario, combinati con altri oggetti o lasciati in altri luoghi. Adventure Click gestisce in automatico l'inventario e tutte le relative azioni, per vedere tuttavia come funziona la cosa in pratica, prendiamo subito in esame le seguenti istruzioni:

.Oggetto_Posizione = ["1", "2"]
.Oggetto_Codice = ["chiav", "torc"]
.Oggetto_Titolo = ["Chiave", "Torcia"]
.Oggetto_Nome = ["Una Chiave", "Una Torcia"]
.Oggetto_Usabile = ["y", "y"]
.Oggetto_Visibile = ["y", "y"]
.Oggetto_Lasciabile = ["n", "n"]
.Oggetto_Descrizione = ["Una chiave di colore giallo.", "Una Potente Torcia a batterie."]

Come nel caso delle variabili anche gli oggetti usano lo stesso sistema. Oggetto[0], Oggetto[1], Oggetto[2] e così via.

.Oggetto_Posizione
Questo esempio indica che la posizione iniziale dell'oggetto zero è la Stanza 1. Se il giocatore entrerà nella Stanza 1 vedrà in automatico la chiave. Mentre l'oggetto 1, ovvero la Torcia, sarà trovata nella stanza 2.

Se il giocatore prende la torcia e/o la chiave, verranno aggiunti in automatico nell'inventario e saranno contrassegnati da una 'i', in questo modo:

.Oggetto_Posizione[0] = "i";
.Oggetto_Posizione[1] = "i";

o meglio ancora:

.Oggetto_Posizione = ["i", "i"];

Avviene tutto in automatico, ma può tornare utile per il Debug.

Nota:
Durante la realizzazione dell'avventura è possibile utilizzare la funzione Debug che mostra l'esatto stato delle variabili e degli oggetti per aiutare meglio a comprendere il tutto al creatore.

Se un giocatore lascia la chiave nella stanza 10, allora il nuovo stato delle variabili oggetto sarà il seguente:

.Oggetto_Posizione = ["10", "i"];

Come già detto queste cose avvengono in automatico, ma possono essere utili per il Debug.

Se invece vogliamo eliminare definitivamente un oggetto, allora possiamo dichiararlo manualmente. Supponiamo che il giocatore usa la chiave per aprire la porta e che dopo averla aperta la chiave venga rimossa dall'inventario. Scriveremo manualmente:

.Oggetto_Posizione[0] = ["0"];

In questo caso la chiave verrà messa nella Stanza 0, una stanza alla quale il giocatore non accederà mai e quindi non potrà mai più vedere, mentre la torcia continuerà ad essere nell'inventario. Non occorre cambiare il valore di tutti gli oggetti, ma solo quello che ci interessa.

.Oggetto_Codice
E' un codice univoco da dare all'oggetto, che può essere alfanumerico. Esempio:
chiave1, chiave, key, key1.

E' possibile scegliere qualsiasi valore, ma è utile inserire un codice che sia facilmente identificabile, giusto per evitare di perdere tempo dopo, se non si ricorda più a quale oggetto apparteneva un codice.

Ad esempio:

chiaveGialla è sicuramente meglio di chiaveX

Nel primo caso è chiaro che la variabile fa riferimento alla chiave gialla, nel secondo caso, se ci sono anche altre chiavi, non è altrettanto chiaro, ma questo è solo un consiglio.

.Oggetto_Titolo e .Oggetto_Nome
Mostrano il nome dell'oggetto in automatico.

.Oggetto_Usabile
Se impostato su sì (y) l'oggetto può essere combinato con altri oggetti, altrimenti Adventure Click non mostra in automatico questa opzione.

.Oggetto_Visibile
Se impostato su sì (n), l'oggetto è in possesso del giocatore, ma non sarà visibile per poterlo combinare con altri oggetti.

.Oggetto_Lasciabile
Se impostato su sì (y) il giocatore avrà la possibilità di lasciarlo in un luogo e poi tornare a riprenderlo.

.Oggetto_Descrizione
Una descrizione più dettagliata, anche se breve, dell'oggetto posseduto dal giocatore.

Oggetti Fissi

Gli oggetti fissi sono oggetti che non possono essere trasportati dal giocare. Hanno lo stesso concetto delle variabili e degli oggetti mobili.

.Oggetto_Fisso_Posizione = ["1", "2"]
.Oggetto_Fisso_Codice = ["door1", "door2"]
.Oggetto_Fisso_Nome = ["La Possente Porta", "La Possente Porta"]

Questo codice indica che la porta 1 si trova nella Stanza 1 e la porta 2 si trova nella Stanza 2. I loro codici sono rispettivamente 'door1' e 'door2'.

Come Combinare gli Oggetti - Le Azioni Condizionate

Si tratta delle condizioni che permettono di creare determinate azioni quando il giocatore ad esempio combina 2 oggetti. E' il classico esempio di una chiave combinata con una porta, per aprire quest'ultima e continuare l'avventura.

Anche in questo caso si utilizzano le condizioni, quelle già viste in precedenza, ma anziché utilizzare ':s' all'inizio della riga, utilizzeremo ':c'. Infatti con 's:' indichiamo che la condizione deve agire solo su una determinata Stanza, mentre con ':c', che la condizione è generica, ovvero viene controllata in tutte le stanze.

Le condizioni inoltre sono formate da 2 oggetti (oj1 e oj2) e volendo, in casi più rari anche da 'rm" ovvero la stanza. Facciamo un esempio:

:c .se (oj1=="chiav" && oj2=="door1") .allora .Oggetto_Posizione[0]="0"; .vai(5); :Fine

:c
Inizializza la riga per la condizioni

.se (oj1=="chiav" && oj2=="door1") .allora
Se il giocatore combina la chiave con la porta 1, allora...

.Oggetto_Posizione[0]="0";
La chiave va nella stanza zero, quindi non sarà più presente nel gioco.

.vai(5);
Il giocatore verrà trasportato nella Stanza 5, dove potrà continuare l'avventura.

:Fine
Chiude la riga della condizione.

Anche in questo caso basta fare copia e incolla e cambiare solo il codice degli oggetti, per velocizzare il tutto.

Dicevamo che esiste anche una terza opzione, la 'rm', ma a parte casi davvero eccezionali, non occorre mai metterla in gioco. E' utile se il giocatore deve combinare 2 oggetti, ma solo in una specifica stanza, esempio:

:c .se (oj1=="chiav" && oj2=="door1" && rm="1") .allora ... :Fine

In pratica questa azione potrà avvenire solo ed esclusivamente se il giocatore combina gli oggetti chiave e porta, ma solo se si trova nella stanza 1. Ci sono stati casi comunque che è indispensabile, come quando il giocatore deve combinare 2 oggetti mobili, ma solo ad un certo punto dell'avventura.

(Possiede una Torcia e delle Batterie)

Se la .variabile[1]="0";
viene mostrato ...
Ti trovi in una grotta (Stanza 10) e noti degli strani simboli, ma che non riesci a vedere bene a causa della poca luce. E' il momento di fare qualcosa...
Vai alla stanza 11 (Torna indietro).

Se la .variabile[1]="1";
viene mostrato ...
Ti trovi in una grotta (Stanza 10) e quei simboli indicano l'uscita.
Vai alla stanza 12 (Può uscire dalla grotta sano e salvo).

Esempio di combinazione tra Torcia e Batterie:

:c .se (oj1=="torcia" && oj2=="batterie" && rm="10") .allora .variabile[1]="1"; vai(10); :Fine

Quindi, se si combinano Torcia e Batterie, ma solo nella stanza 10, allora il valore della variabile 1 diventa 1 e come conseguenza, verrà mostrata una seconda scelta nella stanza 10.

 

Le Azioni Condizionate in Tutte le Stanze

Per finire le condizioni che possono essere applicate a tutti gli eventi sono all'interno del file 'Eventi'. Qui dentro basterà scrivere l'azione da attivare in base alla condizione. In questo caso, trattandosi di un file esterno, non occorre iniziare la riga con ':s' oppure con ':c', ma basta scrivere la condizione. Facciamo un esempio. Creiamo una variabile contatore e dopo 3 volte essa dovrà mostrare il testo 'Ciao Mondo'.

Inseriamo la variabile in una stanza:

:s .variabile[0]++;

Tutte le volte che verrà incontrata questa istruzione dal giocatore la variabile 0 aumentarà di una unità. Ora scriviamo nel file Eventi quanto segue:

.se (variabile[0]>=3) .allora .testo('Ciao Mondo'); :fine


Conclusioni

All'interno di Adventure Click sono presenti molti altri esempi grazie ai quali le avventure, sia semplice, che complesse, prenderanno forma in poco tempo e con un poco di pratica.

Un ultimo consiglio
Non guardare il codice nel suo insieme, sarebbe davvero difficoltoso. Guarda piuttosto riga per riga, in questo modo sarà tutto chiaro e molto più semplice. Adventure Click inoltre fornisce tutta una serie di funzioni per gestire immagini, data, ora e molto altre cose interessanti, che verranno affrontante nelle prossime lezioni.
Condivisione


Rosario Sancetta
Spero di esserti stato d'aiuto.
Sono Rosario Sancetta, il responsabile di questo sito. Sono un programmatore informatico dal 1991, un Top Contributor di Google, Eccellenza in Digitale Italiana ed Europea ed esperto in Web Marketing.

Commenti

E tu cosa ne pensi?

Lascia il tuo commento cliccando qui.

 

Nome

 

Commento

 

Attenzione richiesta:

Il tuo nome e il tuo commento verranno registrati all'interno del nostro server. Puoi utilizzare anche un nome che non identifichi la tua persona per restare nell'anonimato. Ad esempio, se ti chiami "Mario Rossi" puoi scrivere semplicemente Mario. L'unico scopo di questo servizio e' quello di arricchire i contenuti attraverso i commenti, oppure esprimere opinioni, pareri e suggerimenti. Prima di continuare devi selezionare il box qui sotto e dare il tuo consenso, se vuoi davvero inviare il tuo commento. Grazie in anticipo per il tuo tempo.

 

 

Scrivi quanto fa 2+3 qui sotto:

 


Contenuti Simili

Anche questo protrebbe esserti utile:

Come Creare Avventure Testuali Punta e Clicca con Adventure Click

Data di publicazione: 12.11.2017 - 12:11:29
Come Creare Avventure Testuali Punta e Clicca con Adventure Click Ecco come creare da solo un'Avventura Testuale punta e clicca con l'engine gratuito Adventure Click, per Windows, Linux, Mac, iOS, Android e molti altri sistemi operativi.

Scopriamo come creare un'Avventura Testuale Punta e Clicca con l'engine Adventure Click, da giocare online con il Browser. Benvenuti su Teletec.it e buona continuazione.

Adventure Click - Come Creare un'Avventura Testuale Punta e Clicca
Adventure Click è un engine gratuito realizzato da Rosario Sancetta, che permette di creare da soli, in modo semplice e divertente, avventure testuali punta e clicca come ad esempio Quantica Project.

Vediamo quindi come si realizza un'avventura testuale da giocare direttamente online con il Browser o in alternativa da scaricare nel proprio dispositivo. Le avventure possono infatti essere giocate sia su dispositivi fissi che mobili.

Come Funziona Adventure Click

La prima cosa da fare è quella di scaricare gratis Adventure Click dal sito ufficiale al seguente link:

Download Adventure Click - Sito Ufficiale

Scaricato il file zip estraiamo il contenuto in una cartella e troveremo al suo interno i seguenti files e cartelle:


[Engine]
.. engine.js
.. menu.js
.. extra.js

La cartella che contiene l'engine del gioco. Non occorre apportare nessuna modifica o cambiamento.
Il file 'engine.js' si occupa di tutta la gestione dell'avventura. Fa tutto in automatico.
Il file 'menu.js' gestisce le voci Salva, Informazioni e Nuova Avventura.
Il file 'extra.js' contiene altre funzioni per la gestione automatica dell'avventura.
Non occorre modificare nulla di questi files per creare le proprie avventure.
[/Engine]

[Languages]
.. it.js

La cartella che contiene il linguaggio. Anche in questo caso non occorre apportare modifiche e i vari messaggi sono già in Italiano.
Nel file 'it.js' è possibile tuttavia modificare tutte le voci presenti nell'avventura e gestite da Adventure Click, utile ad esempio se si vogliono utilizzare messaggi più personalizzati.
[/Languages]

[Theme]
... adv.css

Si occupa della parte grafica dell'avventura testuale. La pagina dell'avventura può essere personalizzata attraverso CSS. In pratica, sia lo sfondo, che il testo possono essere personalizzati a proprio piacimento. Adventure click si adatta in automatico a qualsiasi risoluzione grafica e a qualsiasi dimensione dello schermo.
[/Theme]

[Images]
In caso si volessero utilizzare immagini all'interno dell'avventura, dovranno essere inserite in questa cartella.
[/Images]

[Adventure]
.. adventure.js
.. info.js
.. message.js

E' la cartella che contiene i files per creare l'avventura.
Il file 'adventure.js' è il file dove scriveremo l'avventura, mentre il file 'info.js' è quello in cui sono presenti le informazioni dell'avventura stessa. Come ad esempio il titolo dell'avventura, il nome dell'autore e molte altre cose che ci permetteranno di personalizzare facilmente tutte le funzioni offerte da Adventure Click.
Il file 'message.js' è un file a parte che si occupa dei messaggi in modo random sugli avvenimenti che accadono durante l'avventura.
[/Adventure]

[Files]
.. index.html
.. memo.htm
.. manuale.html

Il file 'index.html' è il file principale che permette di giocare con l'avventura. Il file 'memo.htm' è un file utile, ma non necessario, che permette al giocatore di memorizzare appunti e note durante lo svolgersi dell'avventura. Infine il file 'manuale.html' è un file che richiama questa guida.
[/Files]

Come Creare un'avventura con Adventure Click

Ora che abbiamo dato uno sguardo veloce a quelli che sono gli elementi all'interno di Adventure Click, non ci resta che creare la prima avventura testuale punta e clicca. Iniziamo.

Avviamo il nostro editor di testo preferito (per Windows consiglio Notepad2) ed apriamo il file 'info.js'. Scriviamo il titolo dell'avventura, il nome dell'autore e la data di creazione. Altre funzioni le vedremo nelle prossime lezioni. Salviamo le modifiche appena apportate, chiudiamo il file ed apriamo il file 'adventure.js' il cuore vero e proprio della nostra avventura.

Le istruzioni che dovremo imparare a memoria sono facili e sono davvero poche. Ecco quelle che utilizzeremo frequentemente:

tt('Sotterraneo');
Mostra il luogo in cui si trova il giocatore.

tx('Descrizione del luogo');
Ci permette di descrivere il luogo in cui si trova il giocatore.

lk('link', Numero Room);
Crea un collegamento tra una stanza e un'altra. Dove 'link' è la parola che è possibile cliccare e 'Numero Room' il luogo che verrà raggiunto dopo aver cliccato sopra il link.

dir('');
Crea in automatico le direzioni inserendo Nord, Sud, Est, Ovest, Alto e Basso. Nel nostro esempio non utilizzeremo questa funzione in quanto creeremo qualcosa di più complesso.

br();
Inserisce un ritorno a capo. Se tra le parentesi si inserisce un numero, verranno creati più ritorni a capo. Esempio:

br();
Questa è una
avventura

br(2);
Questa è una

avventura

Stanze, luoghi ed ambienti in Adventure Click vengono chiamati Room. Una Room quindi non è altro che il luogo in cui si trova il giocatore.

Tutte le stanze sono identificate da un codice ID univoco e sono formate in questo modo:

case 1:
break;

case 2:
break;

case 3:
break;

Creiamo velocemente un'avventura
L'avventura che creeremo avrà già in sé tutti gli elementi per poter realizzare qualsiasi tipo di avventura, anche quelle più complesse. Ovviamente nelle prossime lezioni affronteremo altri aspetti di Adventure Click, ma già con questo breve e semplice tutorial potrete avere un'idea chiara e completa di come creare un'avventura e di come utilizzare Adventure Click.

Il giocatore dovrà aprire la porta di una stanza chiusa a chiave, prendere il cellulare posto sopra la scrivania e uscire dall'appartamento. Potrà uscire solo se è in possesso del cellulare.

Una breve avventura che ricorda tanto 'Operazione Zanna Bianca' di Enrico Colombini che utilizzò come tutorial per il suo engine realizzato in GwBasic (Modulo Base - Avventure per MS-DOS).

Scriviamo quindi quello che dovrà fare il giocatore:

1 - Si trova nell'atrio
2 - Scende in cantina
3 - Prende la chiave
4 - Torna nell'atrio
5 - Apre la Stanza
6 - Prende il cellulare
7 - Torna nell'atrio
8 - Apre la porta per uscire dall'appartamento

Creiamo le stanze dell'avventura

case 1:
tt('Atrio');
tx('Sei in un atrio arredato con stile. Vedi una ');
lk('stanza', 2);
tx(', una ');
lk('porta', 4);
tx(' e delle scale che portano in ');
lk('cantina', 3);
tx('.');
break;

case 2:
tt('Stanza');
tx('La stanza e' chiusa a chiave.');
br();
lk('Continua', 1);
break;

case 3:
tt('Cantina');
tx('Una cantina fredda e umida.');
br(2);
lk('Sali', 1);
break;

case 4:
tt('Porta dell'appartamento');
tx('La porta per uscire dall'appartamento. Devi prendere il cellulare per uscire.');
br(2);
lk('Continua', 1);
break;

Come si può notare la descrizione dei luoghi viene fatta tramite la funzione tx(''); e ogni luogo e collegato tramite la funzione lk('', Room);

L'esempio è perfettamente funzionante. Facciamo doppio click sul files 'index.html' ed avviamo l'avventura, oppure se è già aperto aggiorniamo la pagina o premiamo il tasto F5. Ora possiamo esplorare l'ambiente, ma ovviamente non ci sono ne oggetti, ne restrizioni.

Come Utilizzare gli Oggetti e le Variabili con Adventure Click

E' giunta l'ora di aggiungere gli oggetti e le variabili per completare l'avventura. Oggetti e Variabili sono un parte importante dell'avventura, perché permettono di far 'eseguire' degli eventi in automatico ad Adventure Click in base a quanto succede nel gioco. Tutto questo Adventure Click lo fa comunque in automatico, basta solo scrivere quello che si vuole ottenere.

Oggetti
Gli oggetti possono essere fissi e mobili. Per fissi intendiamo gli oggetti che non si possono prendere o trasportare, come ad esempio una porta. Con oggetti mobili invece intendiamo gli oggetti che si possono prendere ed utilizzare durante lo svolgersi dell'avventura. Ad esempio una torcia o una chiave, sono oggetti che possiamo prendere e che quindi verranno aggiunti nell'inventario in automatico. Anche l'inventario verrà gestito in automatico da Adventure Click.

Variabili
Le variabili li possiamo definire come dei piccoli contenitori che contengono un'informazione o un dato. Tale dato generalmente è utile per fare dei confronti o delle comparazioni. Ad esempio la variabile A=1 indica appunto che A è uguale ad 1 e questo è un dato che possiamo utilizzare a nostro vantaggio. Esempio:

- Se A=1 allora succede questa cosa...
- Se A=0 allora succede quest'altra cosa...

Le Variabili in Adventure Click a loro volta possono essere fisse o dinamiche.

Le variabili fisse
Le variabili fisse sono quelle che non cambiano durante lo scorrere dell'avventura e sono in realtà poco utilizzate, perché hanno un determinato dato che dall'inizio alla fine dell'avventura sarà sempre lo stesso. Supponiamo che durante l'avventura dobbiamo scrivere continuamente 'Cosa vuoi fare ora?'. Per evitare di scrivere la frase continuamente possiamo utilizzare una variabile fissa in questo modo:

var mes1='Cosa vuoi fare ora?';

dove 'mes1' è un nome a piacere. Tutte le volte che inseriremo 'mes1' in una stanza verrà mostrato il testo 'Cosa vuoi fare ora?'. Esempio:

tx(mes1);

Le varibili dinamiche
Le varibili dinamiche sono quelle che invece cambiano continuamente stato in base a quanto fatto dal giocatore. Ad esempio la variabile Chiave=0 può indicare che il giocatore non ha la chiave, ma una volta presa allora Chiave=1, che indica appunto che il giocatore ha la chiave. Se poi usa la chiave con la porta e lascia la chiave, allora lo stato della variabile torna ad essere Chiave=0.

Aggiungiamo quindi una Chiave, giusto per restare in tema, alla nostra prima avventura.

Come Aggiungere un Oggetto Mobile con Adventure Click

Facendo un riepilogo veloce, il nostro obiettivo è quello di aggiungere una chiave in cantina. Il giocatore potrà prenderla per aprire in seguito la porta.

Grazie a questa parte di codice possiamo notare che l'ID Room della cantina è il numero 3 (case 3) e sarà qui che metteremo la chiave.

case 3:
tt('Cantina');
tx('Una cantina fredda e umida.');
br(2);
lk('Sali', 1);
break;

Modifichiamo quindi il seguente codice:

da così...
var objVar = [''];
var objId = [''];
var objTit = [''];
var objName = [''];
var objUse = [''];
var objShow = [''];
var objLeave= [''];
var objDesc = [''];

...a così...

var objVar = ['3'];
var objId = ['ch'];
var objTit = ['Chiave'];
var objName = ['Una chiave'];
var objUse = ['y'];
var objShow = ['y'];
var objLeave= ['y'];
var objDesc = ['Una piccola chiave'];

objVar: indica il luogo dove si trova l'oggetto.

objId: Un codice univoco assegnato all'oggetto. Può essere utilizzato un nome alfanumerico a piacere.

objTit: Il nome dell'oggetto.

objName: Il nome che verrà mostrato nell'inventario.

objUse: Specifica se l'oggetto può essere combinato con altri oggetti oppure se è un oggetto solo da trasportare. Ad esempio un diamante che abbiamo recuperato. Non si usa con altri oggetti, ma è un oggetto fine a sé stesso. Valori 'y' per si oppure 'n' per no.

objShow: Specifica se mostrare o meno un oggetto nell'inventario dopo che il giocatore lo ha preso. Valori 'y' per si oppure 'n' per no.

objLeave: Specifica se mostrare o meno il tasto Lascia un oggetto.

objDesc: Una descrizione più dettagliata dell'oggetto.

Ora che il giocatore ha la chiave Adventure Click in automatico gestirà l'inventario. E' possibile infatti usarla oppure lasciarla in qualsasi posto e poi riprenderla.

Fatto ciò non ci resta che inserire un oggetto fisso che è la porta della stanza che dovrà essere aperta dalla chiave. Per la porta d'ingresso utilizzeremo invece un Oggetto Fisso.

Come Aggiungere un Oggetto Fisso con Adventure Click

Ed ora aggiungiamo un oggetto fisso, che in questo esempio è la porta, con la quale il giocatore potrà interagire ed aprire utilizzando la chiave. Anche in questo caso, quello che faremo sarà inserire l'oggetto, mentre Adventure Click gestirà tutto il resto in automatico.

Modifichiamo quindi il seguente codice:

da così...

var objFixVar = [''];
var objFixId = [''];
var objFixName = [''];

...a così...

var objFixVar = ['2'];
var objFixId = ['pt'];
var objFixName = ['Porta'];

objFixVar: Il 2 rappresenta dove si trova la porta. Il giocatore potrà interagire con questo oggetto solo ed esclusivamente nella Room 2. In altri luoghi non verrà mostrato.

objFixId: Un codice univoco assegnato all'oggetto. Può essere utilizzato un nome alfanumerico a piacere.

objFixName: Il nome che verrà mostrato non appena il giocatore utilizzerà l'oggetto Chiave. Ad esempio, usa Chiave con... Porta

Come Combinare gli Oggetti con Adventure Click

Ora che abbiamo creato l'oggetto Chiave e l'oggetto Porta, non ci resta che permettere al giocatore di poterli combinare. Il giocatore potrà utilizzare la chiave solo nella Room 2. Quali ID abbiamo assegnato agli oggetti?

La Porta
var objFixId = ['pt'];

La Chiave
var objId = ['ch'];

Bene, aggiungiamo la condizione nella seguente funzione...

...combineObj(oj1, oj2, rm) {
if ((oj1=='ch') && (oj2=='pt')) {
v[0]=1;
gotoRoom(rm);
return;
}
rndText(caseNegative);
}

In pratica la variabile v[0] dallo stato zero passa allo stato 1. Ora la porta è aperta.

Modifichiamo quindi il seguente codice da così...

case 2:
tt('Stanza');
tx('La stanza e' chiusa a chiave.');
br();
lk('Continua', 1);
break;

... a così...

case 2:
tt('Stanza');
if (v[0]==0) {
tx('La stanza e' chiusa a chiave.');
}
if (v[0]==1) {
tx('Sei all'interno della stanza. Puoi vedere una scrivania dove sopra c'è un ');
lk('cellulare', 5);
}
br(2);
lk('Esci', 1);
break;

ed aggiungiamo anche il cellulare come oggetto mobile, ma che non deve essere utilizzato con altri oggetti.

var objVar = ['3', '0'];
var objId = ['ch', 'cell'];
var objTit = ['Chiave', 'Cellulare'];
var objName = ['Una chiave', 'Un Cellulare'];
var objUse = ['y','n'];
var objShow = ['y','y'];
var objLeave= ['y','n'];
var objDesc = ['Una piccola chiave', 'Un piccolo cellulare GSM. Non li fanno più belli come una volta'];

Questo esempio è presente in Adventure Click con il titolo 'Prendi il Cellulare'. Aggiorniamo il file 'index.html' per eseguire l'avventura. Se tutto funziona correttamente modifichiamo nel file 'info.js' la riga 'debug=1;' con 'debug=0;'. Il Debug ci permette di avere in tempo reale la situazione di tutte le variabili e di tutti gli oggetti durante la fase di creazione dell'avventura.


1 - Come Creare Avventure Testuali Punta e Clicca con Adventure Click - Senza il Compilatore Adventure Click 2020