Sommario:
- Passaggio 1: crea il tuo giocatore
- Passaggio 2: nuovo codice camera
- Passaggio 3: creazione di un collegamento da una variabile
- Passaggio 4: prova
- Passaggio 5: aggiungi un elenco di stanze
- Passaggio 6: eliminare le stanze
- Passaggio 7: test
- Passaggio 8: stranezze con zolletta di zucchero e oggetti
- Passaggio 9: la funzione Clone()
- Passaggio 10: per ora è tutto
Video: Collegamenti da variabili in spago con Sugarcube: 10 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Sono così felice che tu ti sia unito di nuovo a me! Questo significa che il Wumpus non ti ha ancora mangiato. Bene!
Per quelli di voi che non hanno familiarità, questa è una serie di tutorial che sto realizzando per aiutare la mia adorabile cugina Widdle oochy-skootchy con il suo progetto senior. Questi tutorial sono pensati per essere un riferimento per ciò che puoi fare con alcune delle funzionalità di programmazione di Twine e Sugarcube. Se vuoi seguire, puoi trovare il primo tutorial qui.
Nell'ultimo tutorial, ho costruito un piccolo insieme di stanze che il giocatore può esplorare. Ho aggiunto un oggetto Wumpus e ho creato un codice di stanza generico per cambiare ciò che veniva visualizzato in ogni stanza a seconda di dove si trovava il Wumpus.
Passaggio 1: crea il tuo giocatore
Questo passaggio è molto semplice. Essenzialmente sto usando lo stesso codice del mio $wumpus, ma con una variabile $player invece.
Passaggio 2: nuovo codice camera
Modificato il codice della tua stanza generica in modo che il valore di $player sia la stanza corrente. Quindi confronta $wumpus con $player invece della stanza corrente.
Questa è una modifica minore e non del tutto necessaria, ma mi piace mantenere il mio codice organizzato.
Passaggio 3: creazione di un collegamento da una variabile
Infine, voglio sostituire il collegamento nella mia stanza iniziale con uno che cambia in base al valore di $ giocatore. Questo può essere fatto con la funzione "" in Sugarcube. Puoi leggere di più a riguardo nella pagina della documentazione di Sugarcube.
La prima stringa dopo il nostro comando è la frase che apparirà nel nostro passaggio. Il secondo è il nome del passaggio a cui vogliamo collegarci. Sto usando "Hunt the Wumpus!" come la mia frase, ma potremmo usare la nostra variabile lì invece se vogliamo che il giocatore sappia in anticipo dove stanno andando, in questo modo:
Passaggio 4: prova
Quando provi il tuo codice, dovresti scoprire che il tuo link è stato sostituito con qualsiasi frase tu abbia scritto prima. Fare clic su di esso ti porta in una stanza casuale nel tuo gioco.
Sfortunatamente, questo può anche portarti direttamente nella stanza dei Wumpus! Non ha molta importanza in questo momento, ma in un gioco reale sarebbe un game over istantaneo. Dobbiamo aggiustarlo.
Passaggio 5: aggiungi un elenco di stanze
Per prima cosa, creeremo un elenco di stanze, per semplificare la gestione delle stanze. Dichiarando questo array, possiamo usarlo per impostare i nostri valori $player e $wumpus senza dover ripetere il codice. Ha anche un altro vantaggio che esploreremo in seguito.
Il test con questo codice dovrebbe comportarsi come prima.
Passaggio 6: eliminare le stanze
Ho aggiunto una singola riga di codice al codice precedente (evidenziato).
Gli array in Sugarcube hanno una funzione integrata che ti consente di eliminare gli elementi da essi per nome. In questo caso, una volta assegnata a $wumpus una stanza, possiamo eliminare quella stanza dalla nostra $roomlist. Questa funzione è però pignola. Non funzionerà a meno che l'output della funzione non venga assegnato o utilizzato in qualche modo. Per occuparmene, ho creato la variabile temporanea _temp.
In Sugarcube, le variabili temporanee iniziano con un carattere di sottolineatura (_) anziché con un dollaro ($). Sono utili perché vengono eliminati una volta eseguito il passaggio, quindi non devi preoccuparti della sovrapposizione dei nomi delle variabili.
Sto eliminando anche la stanza $player da $roomlist, ovviamente.
Passaggio 7: test
Anche se potremmo eseguire il codice così com'è ora, non sarebbe un test molto approfondito. Se eseguiamo il codice e scopriamo che $player e $wumpus sono assegnati a stanze diverse, non sappiamo se è perché il codice funziona o se è solo un caso. Certo, potremmo eseguire il codice molte volte e presumere che se non assegna mai a entrambi la stessa stanza non lo farà mai, ma ci vorrà un'eternità e non è ancora una garanzia al 100% che non possa mai accadere.
Invece, abbiamo bisogno di un modo per controllare.
Ho aggiunto tre righe all'inizio del nostro passaggio introduttivo che ci permetteranno di vedere i valori delle nostre variabili $wumpus, $player e $roomlist. A causa del modo in cui abbiamo impostato il nostro codice, sappiamo che la stanza $wumpus e la stanza $player dovrebbero essere eliminate dalla $roomlist.
Quando eseguiamo questo codice, possiamo verificare che sia così.
Passaggio 8: stranezze con zolletta di zucchero e oggetti
Gli oggetti Sugarcube sono un po' strani. Permettetemi di dimostrarlo.
Mentre stavo costruendo questo progetto in origine, volevo salvare il mio $ roomlist in una variabile $ saveroom prima di iniziare a eliminare le stanze da esso. Ho pensato che sarebbe tornato utile in seguito.
Quando ho riscontrato uno strano comportamento da questo codice, ho aggiunto un'altra riga alla mia pagina di introduzione per permettermi di guardare la mia variabile $ saveroom (seconda immagine).
Sono rimasto scioccato nello scoprire che gli elementi che avevo cancellato da $ roomlist erano stati cancellati anche dalla mia lista salvata! Potete vederlo in azione nella terza immagine.
Questo perché quando copi un array come questo, in realtà non stai dicendo a Twine di copiare l'array, stai dicendo a Twine che queste due variabili sono lo stesso array. Quando fai qualcosa sull'array usando una variabile, cambia lo stesso array che sta guardando l'altra variabile!
Possiamo risolvere questo problema con la funzione clone().
Passaggio 9: la funzione Clone()
Puoi leggere la funzione clone() nella pagina della documentazione di Sugarcube.
Una copia "superficiale" è ciò che facevamo prima. Invece di fare una copia completa dell'intero array, presuppone solo che la tua variabile funzioni con lo stesso array. Invece di una copia superficiale, clone() esegue una copia "profonda", che si comporta come ci si aspetterebbe. Ogni elemento dell'array viene copiato in un nuovo array ed è totalmente separato dall'originale.
Se testiamo questo nuovo codice, troviamo che funziona come previsto.
Naturalmente, non importa se tieni o meno $roomlist. Ai fini del mio progetto, non lo farò. Tutto questo era solo per dimostrare copie profonde contro superficiali.
Passaggio 10: per ora è tutto
Abbiamo aggiunto un codice che consente al nostro giocatore di iniziare in una stanza casuale. In aggiunta a ciò, abbiamo eliminato un bug per cui il giocatore iniziava nella stessa stanza del Wumpus.
Abbiamo imparato come creare collegamenti da variabili e come la copia di array viene gestita da Sugarcube.
Le cose stanno aumentando, ma siamo solo all'inizio!
Buona caccia!
Consigliato:
Stanze generiche in spago con cubetti di zucchero: 11 passaggi
Stanze generiche in Twine With Sugarcube: Ciao ciao e benvenuto nel mio tutorial sulla creazione di Wumpus Hunt in Twine con Sugarcube!Twine è uno strumento molto semplice, progettato per creare giochi di avventura testuali! La mia cuginetta preferita ha scelto di fare un gioco con Twine per il suo progetto senior, un
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Utilizzo di soglie di intensità della scala di grigi variabili per visualizzare e identificare le anomalie nelle immagini mammografiche: 9 passaggi
Utilizzo di soglie di intensità della scala di grigi variabili per visualizzare e identificare le anomalie nelle immagini mammografiche: lo scopo di questo progetto era identificare e utilizzare un parametro per elaborare le immagini mammografiche in scala di grigi di varie classificazioni di tessuti di fondo: grasso, ghiandolare grasso, & Tessuto denso. Questa classificazione viene utilizzata quando i radiologi analizzano mam
Spelafili di precisione - Nuovi collegamenti video: 3 passaggi
Spelafili di precisione - Nuovi collegamenti video: spellafili rotativo manuale da una penna Bic, un cacciavite e una lama di rasoio. Di recente ho acquistato una bobina di filo di teflon 30AWG. Ho pensato che sarebbe stato ottimo per la prototipazione, perché un saldatore caldo non scioglierà l'isolamento. Beh, in un certo senso non è
N: Come realizzare una scultura a più strati in acrilico e LED con livelli di illuminazione variabili: 11 passaggi (con immagini)
N: Come realizzare una scultura multistrato in acrilico e LED con livelli di illuminazione variabili: qui puoi scoprire come personalizzarti come realizzato per la mostra www.laplandscape.co.uk curata dal gruppo di arte/design Lapland. Altre immagini possono essere viste su flickrQuesta mostra va da mercoledì 26 novembre a venerdì 12 dicembre 2008 incluso