Tartalomjegyzék:

Linkek a zsinegből a cukorkockával: 10 lépés
Linkek a zsinegből a cukorkockával: 10 lépés

Videó: Linkek a zsinegből a cukorkockával: 10 lépés

Videó: Linkek a zsinegből a cukorkockával: 10 lépés
Videó: Символ года 2020. Мышь из банки. Мышь из шпагата. Кофейная мышь. #2020мышь #2020крыса 2024, Július
Anonim
Linkek a változókból zsinegben cukorkockával
Linkek a változókból zsinegben cukorkockával

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

Hozd létre a lejátszódat
Hozd létre a lejátszódat

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

Új szobakód
Ú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

Link létrehozása változóból
Link létrehozása 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

Teszt
Teszt
Teszt
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

Szobalista hozzáadása
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

Szobák megszüntetése
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

Tesztelés
Tesztelés
Tesztelé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

Furcsaságok cukorkockával és tárgyakkal
Furcsaságok cukorkockával és tárgyakkal
Furcsaságok cukorkockával és tárgyakkal
Furcsaságok cukorkockával és tárgyakkal
Furcsaságok cukorkockával és tárgyakkal
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 klón () függvény
A klón () függvény
A klón () függvény
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

Egyelőre ennyi!
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: