Cuprins:
- Pasul 1: Creați-vă jucătorul
- Pasul 2: Cod de cameră nou
- Pasul 3: Crearea unui link dintr-o variabilă
- Pasul 4: Testează
- Pasul 5: Adăugați o listă de camere
- Pasul 6: Eliminarea camerelor
- Pasul 7: Testarea
- Pasul 8: Ciudățenii cu Sugarcube și obiecte
- Pasul 9: Funcția Clonare ()
- Pasul 10: Asta este deocamdată
Video: Legături din variabile în sfoară cu Sugarcube: 10 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Mă bucur că m-ai alăturat din nou! Asta înseamnă că Wumpus nu te-a mâncat încă. Bun!
Pentru aceia dintre voi care nu sunt familiarizați, acesta este un set de tutoriale pe care le fac pentru a-i ajuta pe verișoara mea adorabilă oochy-skootchy cu proiectul ei senior. Aceste tutoriale sunt menite să fie o referință pentru ceea ce puteți face cu unele dintre caracteristicile de programare ale Twine și Sugarcube. Dacă doriți să continuați, puteți găsi primul tutorial aici.
În ultimul tutorial, am construit un mic set de camere pe care jucătorul le poate explora. Am adăugat un obiect Wumpus și am creat un cod de cameră generic pentru a schimba ceea ce era afișat în fiecare cameră, în funcție de locul unde se află Wumpus.
Pasul 1: Creați-vă jucătorul
Acest pas este foarte simplu. În esență, folosesc același cod ca $ wumpus, dar cu o variabilă $ player.
Pasul 2: Cod de cameră nou
V-am modificat codul de cameră generic, astfel încât valoarea $ player să fie camera curentă. Apoi comparați $ wumpus cu $ player în loc de camera curentă.
Aceasta este o schimbare minoră și nu este absolut necesară, dar îmi place să-mi păstrez codul organizat.
Pasul 3: Crearea unui link dintr-o variabilă
În cele din urmă, doresc să înlocuiesc linkul din camera mea de pornire cu unul care se schimbă pe baza valorii $ player. Acest lucru se poate face cu funcția "" din Sugarcube. Puteți citi mai multe despre asta în pagina de documentație a Sugarcube.
Primul șir după comanda noastră este expresia care va apărea în pasajul nostru. Al doilea este numele pasajului la care vrem să facem legătura. Folosesc „Hunt the Wumpus!” ca fraza mea, dar am putea folosi variabila noastră acolo în loc dacă vrem ca jucătorul să știe unde merg în prealabil, astfel:
Pasul 4: Testează
Când vă testați codul, ar trebui să constatați că linkul dvs. a fost înlocuit cu orice frază ați scris anterior. Dacă faceți clic pe acesta, veți ajunge la o cameră aleatorie din joc.
Din păcate, acest lucru vă poate duce direct în camera Wumpus! Asta nu contează prea mult acum, dar într-un joc real, care ar fi un joc instantaneu. Trebuie să remediem asta.
Pasul 5: Adăugați o listă de camere
În primul rând, vom crea o listă de camere, pentru a facilita administrarea camerelor. Prin declararea acestei matrice, o putem folosi pentru a seta valorile noastre $ player și $ wumpus fără a repeta codul. De asemenea, are un alt avantaj pe care îl vom explora în continuare.
Testarea cu acest cod ar trebui să se comporte la fel ca înainte.
Pasul 6: Eliminarea camerelor
Am adăugat o singură linie de cod la codul dinainte (evidențiat).
Tablourile din Sugarcube au o funcție încorporată care vă permite să ștergeți elemente din ele după nume. În acest caz, odată ce atribuim o cameră $ wumpus, putem șterge camera respectivă din lista noastră de camere $. Cu toate acestea, această funcție este fictivă. Nu va funcționa decât dacă ieșirea funcției este atribuită sau utilizată într-un fel. Pentru a avea grijă de asta, am creat variabila temporară _temp.
În Sugarcube, variabilele temporare încep cu un subliniere (_) în loc de un dolar ($). Sunt utile, deoarece sunt șterse odată ce pasajul este rulat, deci nu trebuie să vă faceți griji cu privire la suprapunerea numelor variabilelor.
Șterg și camera $ player din lista de camere $, de la sine înțeles.
Pasul 7: Testarea
Deși am putea rula codul așa cum este acum, nu ar fi un test foarte amănunțit. Dacă rulăm codul și constatăm că $ player și $ wumpus sunt alocați diferitelor camere, nu știm dacă asta se întâmplă deoarece codul funcționează sau dacă este doar întâmplare. Sigur, am putea rula codul de multe ori și să presupunem că dacă nu le atribuie niciodată ambelor aceeași cameră pe care nu o va face niciodată, dar asta va dura pentru totdeauna și tot nu este o asigurare 100% că nu se poate întâmpla niciodată.
În schimb, avem nevoie de o modalitate de verificare.
Am adăugat trei linii în partea de sus a pasajului introductiv care ne va permite să vedem valorile variabilelor noastre $ wumpus, $ player și $ roomlist. Datorită modului în care ne-am configurat codul, știm că $ $ wumpus room și $ player room ar trebui eliminate din $ roomlist.
Când rulăm acest cod, putem verifica pentru a ne asigura că acesta este cazul.
Pasul 8: Ciudățenii cu Sugarcube și obiecte
Obiectele de zahăr sunt puțin ciudate. Permiteți-mi să demonstrez acest lucru.
În timp ce construiam inițial acest proiect, am vrut să-mi salvez lista $ room într-o variabilă $ saveroom înainte să încep să șterg camere din acesta. M-am gândit că va fi util mai târziu.
Când am primit un comportament ciudat din acest cod, am adăugat o altă linie la pagina mea introductivă pentru a mă permite să mă uit la variabila mea $ saveroom (a doua imagine).
Am fost șocat când am aflat că elementele pe care le ștersesem din $ roomlist fuseseră șterse și din lista mea salvată! Puteți vedea acest lucru în acțiune în a treia imagine.
Acest lucru se datorează faptului că atunci când copiați un tablou de genul acesta, nu îi spuneți de fapt lui Twine să copieze tabloul, ci îi spuneți lui Twine că aceste două variabile sunt aceeași matrice. Când faceți ceva matricei folosind o variabilă, aceasta schimbă aceeași matrice pe care o privește cealaltă variabilă!
Putem repara acest lucru cu funcția clone ().
Pasul 9: Funcția Clonare ()
Puteți citi despre funcția clone () pe pagina de documentare Sugarcube.
O copie „superficială” este ceea ce făceam înainte. În loc să faceți o copie completă a întregului tablou, presupune doar că variabila dvs. funcționează cu același tablou. În loc de o copie superficială, clone () face o copie „profundă”, care se comportă așa cum v-ați aștepta. Fiecare element al matricei este copiat într-o matrice nouă și este complet separat de original.
Dacă testăm acest nou cod, vom găsi că funcționează conform așteptărilor.
Desigur, nu contează dacă păstrați $ roomlist sau nu. În scopul proiectului meu, nu mă duc. Totul a fost doar pentru a demonstra copii adânci vs.
Pasul 10: Asta este deocamdată
Am adăugat cod care permite jucătorului nostru să înceapă într-o cameră aleatorie. În plus, am eliminat o eroare în care jucătorul ar începe în aceeași cameră cu Wumpus.
Am aflat despre cum să creăm legături din variabile și despre modul în care copierea matrice este tratată de Sugarcube.
Lucrurile se intensifică, dar abia începem!
Vanatoare placuta!
Recomandat:
Camere generice în sfoară cu Sugarcube: 11 pași
Camere generice în sfoară cu Sugarcube: Bună ziua, salut și bine ați venit la tutorialul meu despre construirea Wumpus Hunt în sfoară cu Sugarcube! Twine este un instrument foarte simplu, conceput pentru a crea jocuri de aventură text! Vărul meu preferat a ales să facă un joc cu Twine pentru proiectul ei senior, un
Cel mai mic difuzor Bluetooth din lume din piese vechi: 8 pași (cu imagini)
Cel mai mic difuzor Bluetooth din lume de la piese vechi: dacă ți-a plăcut acest proiect, ia în considerare votarea acestuia pentru a câștiga concursul Trash to Treasure aici -https: //www.instructables.com/contest/trashytreasure2020/ În acest instructiv vei învăța cum să faci un difuzor bluetooth de casă foarte mic, care
Un model precis al unei stele variabile cefeide: 5 pași (cu imagini)
Un model precis al unei stele variabile cefeide: spațiul este mare. Foarte mare. Din punct de vedere astronomic, s-ar putea spune chiar. Acest lucru nu are nicio legătură cu acest proiect, am vrut doar să folosesc jocul de cuvinte. Nu este surprinzător faptul că există multe stele pe cerul nopții. Cu toate acestea, poate surprinde pe unii care sunt noi în realitate
Înfășurați bine cablurile fără legături sau încurcături: 5 pași (cu imagini)
Înfășurați bine cablurile fără legături sau încurcături: Scopul: o modalitate de a înfășura cablurile (căști, alimentare etc.) fără legături sau curele de velcro, care este rapidă, nu se anulează și este repede de desfăcut. Iată o metodă, sugestii mai bune? Mai multe ghiduri: http://www.curiousinventor.com/guidesVideo showi
N: Cum se realizează o sculptură în mai multe straturi din acril și LED cu niveluri de iluminare variabile: 11 pași (cu imagini)
N: Cum să faci o sculptură acrilică și LED cu mai multe straturi cu niveluri de iluminare variabile: Aici poți afla cum să te faci propriu n așa cum a fost realizat pentru expoziția www.laplandscape.co.uk organizată de grupul de artă / design Lapland. Mai multe imagini pot fi văzute la flickr Această expoziție se desfășoară de miercuri 26 noiembrie până vineri 12 decembrie 2008 inclusiv