Taula de continguts:
- Pas 1: creeu el vostre reproductor
- Pas 2: nou codi d'habitació
- Pas 3: Creació d’un enllaç a partir d’una variable
- Pas 4: prova
- Pas 5: afegiu una llista d'habitacions
- Pas 6: Eliminació d'habitacions
- Pas 7: proves
- Pas 8: Raritats amb el Sugarcube i els objectes
- Pas 9: la funció Clone ()
- Pas 10: Això és tot per ara
Vídeo: Enllaços de variables en guita amb Sugarcube: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Estic molt contenta de tornar a acompanyar-me! Això significa que el Wumpus encara no us ha menjat. Bé!
Per a aquells que no estigueu familiaritzats, aquest és un conjunt de tutorials que estic realitzant per ajudar la meva adorable cosina de widdle oochy-skootchy amb el seu projecte sènior. Aquests tutorials han de ser una referència per al que podeu fer amb algunes de les funcions de programació de Twine i Sugarcube. Si voleu seguir-ho, podeu trobar el primer tutorial aquí.
A l'últim tutorial, vaig construir un petit conjunt d'habitacions que el jugador pot explorar. He afegit un objecte de Wumpus i he creat un codi d'habitació genèric per canviar el que es mostrava a cada habitació en funció d'on es trobi el Wumpus.
Pas 1: creeu el vostre reproductor
Aquest pas és molt senzill. Essencialment, només estic fent servir el mateix codi que el meu $ wumpus, però amb una variable $ player.
Pas 2: nou codi d'habitació
S'ha canviat el codi d'habitació genèric, de manera que el valor de $ player és l'habitació actual. A continuació, compareu $ wumpus amb $ player en lloc de l'habitació actual.
Es tracta d'un canvi menor, i no del tot necessari, però m'agrada mantenir el meu codi organitzat.
Pas 3: Creació d’un enllaç a partir d’una variable
Finalment, vull substituir l'enllaç de la meva sala d'inici per un que canviï segons el valor de $ player. Això es pot fer amb la "" funció a Sugarcube. Podeu obtenir més informació sobre això a la pàgina de documentació de Sugarcube.
La primera cadena després del nostre comandament és la frase que apareixerà al nostre passatge. El segon és el nom del passatge al qual volem enllaçar. Estic fent servir "Hunt the Wumpus!" com la meva frase, però podríem fer servir la nostra variable allà si volem que el jugador sàpiga cap a on va abans, així:
Pas 4: prova
Quan proveu el codi, haureu de comprovar que el vostre enllaç s'ha substituït per qualsevol frase que hàgiu escrit anteriorment. En fer-hi clic, accedireu a una sala aleatòria del joc.
Malauradament, això també us pot portar directament a la sala Wumpus. Això no importa molt ara mateix, però en un joc real que seria un joc instantani acabat. Hem d’arreglar-ho.
Pas 5: afegiu una llista d'habitacions
En primer lloc, crearem una llista d’habitacions per facilitar la gestió de les habitacions. En declarar aquesta matriu, la podem utilitzar per establir els valors de $ player i $ wumpus sense repetir codi. També té un altre avantatge que explorarem a continuació.
Les proves amb aquest codi haurien de comportar-se com abans.
Pas 6: Eliminació d'habitacions
He afegit una sola línia de codi al codi anterior (ressaltada).
Les matrius de Sugarcube tenen una funció integrada que us permet suprimir els elements per nom. En aquest cas, un cop assignem $ wumpus a una habitació, podem suprimir-la de la nostra llista de $ room. Aquesta funció, però, és complicada. No funcionarà tret que la sortida de la funció estigui assignada o utilitzada d'alguna manera. Per tenir-ne cura, he creat la variable temporal _temp.
A Sugarcube, les variables temporals comencen amb un guió baix (_) en lloc d'un dòlar ($). Són útils perquè s’eliminen un cop s’executa el passatge, de manera que no us heu de preocupar de la superposició de noms de variables.
També estic suprimint la sala de reproductors de $ roomlist, com és natural.
Pas 7: proves
Tot i que podríem executar el codi tal com és ara, no seria una prova molt completa. Si executem el codi i trobem que $ player i $ wumpus estan assignats a diferents sales, no sabem si això és perquè el codi funciona o si és només casualitat. Per descomptat, podríem executar el codi moltes vegades i suposar que si mai no els assigna la mateixa habitació que mai, però això trigarà per sempre i encara no és una garantia del 100% que mai no pot passar.
En el seu lloc, necessitem una manera de comprovar-ho.
He afegit tres línies a la part superior del nostre fragment d'introducció que ens permetran veure els valors de les variables $ wumpus, $ player i $ roomlist. A causa de la forma en què configurem el nostre codi, sabem que la sala $ wumpus i la sala de jugadors $ s'han d'eliminar de la llista d'habitacions $.
Quan executem aquest codi, podem comprovar que aquest sigui el cas.
Pas 8: Raritats amb el Sugarcube i els objectes
Els objectes de sucre són una mica estranys. Permeteu-me demostrar-ho.
Mentre estava construint aquest projecte originalment, volia desar la llista de $ room en una variable $ saveroom abans de començar a suprimir-ne les habitacions. Vaig pensar que després seria útil.
Quan vaig tenir un comportament estrany d'aquest codi, vaig afegir una altra línia a la meva pàgina d'introducció per deixar-me veure la meva variable $ saveroom (segona imatge).
Em va sorprendre veure que els elements que havia esborrat de $ roomlist també havien estat esborrats de la llista desada. Podeu veure-ho en acció a la tercera imatge.
Això es deu al fet que quan copieu una matriu com aquesta, en realitat no esteu dient a Twine que copiï la matriu, sinó a Twine que aquestes dues variables són la mateixa matriu. Quan feu alguna cosa a la matriu mitjançant una variable, canvia la mateixa matriu que està mirant l'altra variable.
Ho podem solucionar amb la funció clone ().
Pas 9: la funció Clone ()
Podeu llegir sobre la funció clone () a la pàgina de documentació Sugarcube.
Una còpia "superficial" és el que estàvem fent abans. En lloc de fer una còpia completa de tota la matriu, només assumeix que la vostra variable funciona amb la mateixa matriu. En lloc d'una còpia poc profunda, clone () fa una còpia "profunda", que es comporta com s'esperava. Cada element de la matriu es copia a una matriu nova i està totalment separat de l'original.
Si provem aquest nou codi, trobarem que funciona com s’esperava.
Per descomptat, no importa si mantingueu $ roomlist o no. Als efectes del meu projecte, no ho faré. Tot això només era per demostrar còpies profundes vs. superficials.
Pas 10: Això és tot per ara
Hem afegit un codi que permet que el nostre jugador comenci en una sala aleatòria. A més, hem eliminat un error en què el jugador començaria a la mateixa sala que el Wumpus.
Hem après sobre com crear enllaços a partir de variables i sobre com tracta Sugarcube de tractar la còpia de matriu.
Les coses augmenten, però tot just comencem!
Feliç caça!
Recomanat:
Llum (s) LED amb bateria amb càrrega solar: 11 passos (amb imatges)
Llums LED amb bateria amb càrrega solar: la meva dona ensenya a la gent a fer sabó, la majoria de les seves classes eren al vespre i aquí a l’hivern es fa fosc cap a les 4:30 de la tarda, alguns dels seus alumnes tenien problemes per trobar el nostre casa. Teníem un rètol frontal però fins i tot amb un lligam al carrer
Sales genèriques en fil amb Sugarcube: 11 passos
Sales genèriques a Twine With Sugarcube: hola, benvinguts al meu tutorial sobre la construcció de Wumpus Hunt a Twine amb Sugarcube! Twine és una eina molt senzilla dissenyada per crear jocs d'aventura de text. La meva cosina petita preferida ha escollit fer un joc amb Twine per al seu projecte sènior, un
Generar enllaços d’afiliació Banggood (referència) més fàcil que mai: 4 passos
Genereu enllaços d’afiliats de Banggood (referències) més fàcils que mai: la versió condensada d’aquest instructiu es pot trobar al meu bloc personal Les vendes d’afiliats són una gran font d’ingressos addicionals per als creadors de contingut i molta gent que els utilitza. el programa d'afiliació és Ban
Automatització industrial basada en Arduino -- VFD (unitats de freqüència variables): 10 passos
Automatització industrial basada en Arduino || VFD (Variable Frequency Drives): en aquest instructiu, us mostraré com fer1. Placa Arduino dissenyada a mida per a automatismes industrials 2. Com controlar VFD [unitats de freqüència variable] mitjançant Arduino 3. Com dissenyar la placa base per a la màquina de bobinatge MDF DigiCone Quines coses teniu
Precision Wire Stripper: nous enllaços de vídeo: 3 passos
Decapant de filferro de precisió: nous enllaços de vídeo: pelador de filferro rotatiu manual d’un bolígraf Bic, un tornavís i una fulla d’afaitar. Recentment he comprat un carret de fil de tefló de 30AWG. Vaig pensar que seria fantàstic per fer prototips, perquè un soldador en calent no faria l’aïllament. Bé, és una cosa que no