
Tartalomjegyzék:
- 1. lépés: Hozza létre lejátszóját
- 2. lépés: Új szobakód
- 3. lépés: Link létrehozása egy változóból
- 4. lépés: Teszt
- 5. lépés: Szobalista hozzáadása
- 6. lépés: Szobák megszüntetése
- 7. lépés: Tesztelés
- 8. lépés: Furcsaságok cukorkockával és tárgyakkal
- 9. lépés: A klón () függvény
- 10. lépés: Egyelőre ennyi
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Nagyon örülök, hogy újra csatlakoztál hozzám! Ez azt jelenti, hogy a Wumpus még nem evett meg téged. Jó!
Azok számára, akik nem ismernek, ez egy sor oktatóanyag, amelyet azért készítek, hogy segítsek imádnivaló, oochy-skootchy vadon élő unokatestvéremnek vezető projektjében. Ezek az oktatóanyagok hivatkozni kívánnak arra, hogy mit lehet tenni a Zsinór és a Sugarcube programozási funkcióival. Ha szeretné követni, itt találja az első oktatóanyagot.
Az utolsó oktatóanyagban építettem egy kis helyiséget, amelyet a játékos felfedezhet. Hozzáadtam egy Wumpus objektumot, és készítettem egy általános szobakódot, hogy megváltoztassam az egyes helyiségekben megjelenő adatokat, attól függően, hogy hol található a Wumpus.
1. lépés: Hozza létre lejátszóját

Ez a lépés nagyon egyszerű. Lényegében csak ugyanazt a kódot használom, mint a $ wumpusom, de egy $ player változóval.
2. lépés: Új szobakód

Megváltoztatta az általános szoba kódját, így a $ player értéke az aktuális szoba. Ezután hasonlítsa össze a $ wumpust a $ lejátszóval a jelenlegi szoba helyett.
Ez egy kisebb változtatás, és nem teljesen szükséges, de szeretem rendszerezni a kódomat.
3. lépés: Link létrehozása egy változóból

Végül szeretném lecserélni a kezdő szobámban lévő linket egy olyanra, amely a $ player értéke alapján változik. Ezt megteheti a "" funkcióval a Sugarcube -ban. Erről bővebben a Sugarcube dokumentációs oldalán olvashat.
Parancsunk után az első karakterlánc az a mondat, amely megjelenik a passzusunkban. A második annak a szakasznak a neve, amelyhez linkelni szeretnénk. A "Vadászd a Wumpust!" mondatként, de használhatnánk ott a változónkat, ha azt szeretnénk, hogy a játékos előre tudja, hová megy, például:
4. lépés: Teszt


A kód tesztelésekor azt kell tapasztalnia, hogy a linket lecserélték a korábban írt kifejezésre. Ha rákattint, egy véletlenszerű terembe jut a játékban.
Sajnos ezzel egyenesen a Wumpus szobába is eljuthat! Ez most nem sokat számít, de egy igazi játékban azonnali vége lenne. Ezt javítanunk kell.
5. lépés: Szobalista hozzáadása

Először is létrehozunk egy szobalistát, hogy megkönnyítsük a szobák kezelését. A tömb deklarálásával használhatjuk a $ player és $ wumpus értékeink beállításához anélkül, hogy ismételnénk a kódot. Van még egy előnye, amelyet a következőkben vizsgálunk.
Az ezzel a kóddal végzett tesztelésnek ugyanúgy kell viselkednie, mint korábban.
6. lépés: Szobák megszüntetése

Egy kódsorral egészítettem ki az előző kódot (kiemelve).
A Sugarcube tömbjeinek van egy beépített funkciója, amely lehetővé teszi az elemek név szerinti törlését. Ebben az esetben, ha $ wumpushoz rendelünk egy szobát, törölhetjük azt a $ roomlistánkból. Ez a funkció azonban finom. Csak akkor fog működni, ha a funkció kimenetét hozzárendelik vagy valamilyen módon használják. Ennek érdekében létrehoztam a _temp ideiglenes változót.
A Sugarcube -ban az ideiglenes változók dollár ($) helyett aláhúzással (_) kezdődnek. Ezek azért hasznosak, mert a szövegrész futtatása után törlődnek, így nem kell aggódnia a változónevek átfedése miatt.
A $ player szobát is törlöm a $ roomlistből, természetesen.
7. lépés: Tesztelés


Bár futtathatnánk a kódot a jelenlegi formájában, ez nem lenne túl alapos teszt. Ha futtatjuk a kódot, és azt tapasztaljuk, hogy a $ player és a $ wumpus különböző helyiségekhez vannak rendelve, akkor nem tudjuk, hogy ez azért van -e, mert a kód működik, vagy csak véletlen. Persze, sokszor futtathatnánk a kódot, és feltételezhetjük, hogy ha sohasem osztja ki mindkettőt ugyanabba a szobába, akkor soha nem fogja, de ez örökké tart, és még mindig nem 100% -os biztosíték arra, hogy ez soha nem történhet meg.
Ehelyett az ellenőrzés módjára van szükségünk.
Hozzáadtam három sort a bevezető részünk tetejére, amelyek lehetővé teszik, hogy lássuk $ wumpus, $ player és $ roomlist változóink értékeit. A kód beállítása miatt tudjuk, hogy a $ wumpus szobát és a $ player szobát ki kell zárni a $ roomlistából.
Amikor ezt a kódot futtatjuk, ellenőrizhetjük, hogy ez a helyzet.
8. lépés: Furcsaságok cukorkockával és tárgyakkal



A cukorkocka tárgyak kissé furcsák. Hadd mutassam be ezt.
Míg ezt a projektet eredetileg építettem, el akartam menteni a $ roomlistomat egy $ saveroom változóba, mielőtt elkezdtem törölni belőle a szobákat. Gondoltam, hogy később jól jön.
Amikor furcsa viselkedést kaptam ettől a kódtól, hozzáadtam egy újabb sort a bevezető oldalamhoz, hogy megnézzem a $ saveroom változómat (második kép).
Megdöbbenve tapasztaltam, hogy a $ roomlistből törölt elemeket is törölték a mentett listámból! Ezt láthatja működés közben a harmadik képen.
Ennek az az oka, hogy amikor egy ilyen tömböt másol, akkor valójában nem azt mondja a Twine -nek, hogy másolja a tömböt, hanem azt, hogy ez a két változó ugyanaz a tömb. Ha az egyik változó használatával tesz valamit a tömbhöz, az ugyanazt a tömböt módosítja, amelyet a másik változó néz!
Ezt a clone () függvénnyel tudjuk megoldani.
9. lépés: A klón () függvény


A clone () függvényről a Sugarcube dokumentációs oldalán olvashat.
A "sekély" másolat az, amit korábban csináltunk. Ahelyett, hogy a teljes tömbről másolatot készítene, csak feltételezi, hogy a változó ugyanazzal a tömbrel működik. A sekély másolat helyett a klón () "mély" másolatot készít, amely úgy viselkedik, ahogy azt elvárná. A tömb minden eleme átmásolódik egy új tömbbe, és teljesen elkülönül az eredetitől.
Ha teszteljük ezt az új kódot, azt tapasztaljuk, hogy a várt módon működik.
Természetesen nem mindegy, hogy megtartja -e a $ roomlist -ot vagy sem. A projektem szempontjából nem fogok. Mindez csak a mély és a sekély másolatok bemutatására szolgált.
10. lépés: Egyelőre ennyi

Hozzáadtunk egy kódot, amellyel játékosunk véletlenszerű szobában indulhat. Ezen kívül megszüntettünk egy hibát, ahol a játékos ugyanabban a teremben kezdett, mint a Wumpus.
Megtanultuk, hogyan lehet változókból linkeket létrehozni, és hogyan kezeli a tömbmásolást a Sugarcube.
Felpörögnek a dolgok, de még csak most kezdjük!
Boldog vadászatot!
Ajánlott:
Általános szobák zsinegben cukorkockával: 11 lépés

Általános szobák zsinegben cukorkockával: Üdvözöllek és üdvözöllek a Wumpus vadászat zsinegben való építésével foglalkozó oktatóanyagomban! A zsineg egy nagyon egyszerű eszköz szöveges kalandjátékok létrehozásához! Kedvenc kis unokatestvérem úgy döntött, hogy játékot készít Twine -val a vezető projektjéhez, egy
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés

DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
A Banggood Affiliate (hivatkozási) linkek létrehozása egyszerűbb, mint valaha: 4 lépés

A Banggood Affiliate (hivatkozási) linkek létrehozása egyszerűbb, mint valaha: Ennek az oktatható anyagnak a sűrített változata megtalálható a személyes blogomon. Az affiliate értékesítések nagyszerű kiegészítő bevételi forrást jelentenek a tartalomkészítők számára, és sok utasítást használó ember használja őket. Egy népszerűbb webhelyen a társult program a Ban
Bevezetés a Michigan -be Linkek: 5 lépés

Bevezetés a Michigan -be Linkek: A Michigani Egyetem linkjei, közvetlenül a Google keresési oldalán * keresve és megjelenítve. Jelenleg a következőket tartalmazza: (1) Közvetlen hozzáférési hivatkozások 34 000+ Egyetemi Könyvtár folyóiratához
Precíziós huzalcsupaszító - Új videó linkek: 3 lépés

Precíziós huzalcsupaszító - Új videó linkek: Kézi forgó huzalcsupaszító Bic tollból, csavarhúzóból és borotvapengéből. Nemrég vettem egy 30AWG teflonhuzalból álló orsót. Arra gondoltam, hogy nagyszerű lesz prototípus készítésre, mert egy forró forrasztópáka nem fogja megolvasztani a szigetelést. Nos, valahogy nem