
Съдържание:
- Стъпка 1: Създайте своя плейър
- Стъпка 2: Нов код на стаята
- Стъпка 3: Създаване на връзка от променлива
- Стъпка 4: Тествайте
- Стъпка 5: Добавете списък със стаи
- Стъпка 6: Премахване на стаите
- Стъпка 7: Тестване
- Стъпка 8: Странности с Sugarcube и обекти
- Стъпка 9: Функцията Clone ()
- Стъпка 10: Това е засега
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57

Много се радвам, че отново се присъединихте към мен! Това означава, че Wumpus все още не ви е изял. Добре!
За тези от вас, които не са запознати, това е набор от уроци, които правя, за да помогна на очарователната си братовчедка oochy-skootchy wdle с нейния старши проект. Тези уроци са предназначени да бъдат справка за това, което можете да направите с някои от функциите за програмиране на Twine и Sugarcube. Ако искате да продължите, можете да намерите първия урок тук.
В последния урок изградих малък набор от стаи, които играчът може да проучи. Добавих обект Wumpus и направих общ код на стаята, за да променя това, което се показва във всяка стая, в зависимост от това къде се намира Wumpus.
Стъпка 1: Създайте своя плейър

Тази стъпка е много проста. По същество просто използвам същия код като моя $ wumpus, но вместо това с променлива на $ player.
Стъпка 2: Нов код на стаята

Променихте общия си код на стаята, така че стойността на $ player е текущата стая. След това сравнете $ wumpus с $ player вместо текущата стая.
Това е малка промяна и не е напълно необходима, но обичам да поддържам кода си организиран.
Стъпка 3: Създаване на връзка от променлива

И накрая, искам да заменя връзката в началната ми стая с такава, която се променя въз основа на стойността на $ player. Това може да стане с функцията "" в Sugarcube. Можете да прочетете повече за това на страницата с документация на Sugarcube.
Първият низ след нашата команда е фразата, която ще се появи в нашия пасаж. Второто е името на пасажа, към който искаме да се свържем. Използвам "Hunt the Wumpus!" като моя фраза, но вместо това бихме могли да използваме нашата променлива, ако искаме играчът да знае къде отива предварително, по следния начин:
Стъпка 4: Тествайте


Когато тествате кода си, трябва да установите, че връзката ви е заменена с която и да е фраза, която сте написали преди. Щракването върху него ще ви отведе до произволна стая в играта ви.
За съжаление, това също може да ви отведе направо до стаята Wumpus! Това няма голямо значение в момента, но в истинска игра, която би приключила мигновено. Трябва да поправим това.
Стъпка 5: Добавете списък със стаи

Първо, ще създадем списък със стаи, за да улесним управлението на стаите. Като декларираме този масив, можем да го използваме, за да зададем нашите $ player и $ wumpus стойности, без да повтаряме кода. Той има и друго предимство, което ще разгледаме по -нататък.
Тестването с този код трябва да се държи точно както преди.
Стъпка 6: Премахване на стаите

Добавих един ред код към кода от преди (подчертано).
Масивите в Sugarcube имат вградена функция, която ви позволява да изтривате елементи от тях по име. В този случай, след като зададем $ wumpus стая, можем да изтрием тази стая от нашия $ roomlist. Тази функция обаче е нестабилна. Той няма да работи, освен ако изходът на функцията не бъде назначен или използван по някакъв начин. За да се погрижа за това, създадох временната променлива _temp.
В Sugarcube временните променливи започват с подчертаване (_) вместо долар ($). Те са полезни, защото се изтриват, след като пасажът бъде изпълнен, така че не е нужно да се притеснявате за припокриване на имената на променливите.
Изтривам стаята $ player и от $ roomlist, разбира се.
Стъпка 7: Тестване


Въпреки че можем да пуснем кода такъв, какъвто е сега, това не би било много задълбочен тест. Ако стартираме кода и установим, че $ player и $ wumpus са разпределени в различни стаи, не знаем дали това е така, защото кодът работи, или това е просто случайност. Разбира се, можем да изпълним кода много пъти и да приемем, че ако никога не им присвои една и съща стая, че никога няма да го направи, но това ще отнеме завинаги и все още не е 100% гаранция, че никога няма да се случи.
Вместо това се нуждаем от начин за проверка.
Добавих три реда в началото на нашия интро пасаж, който ще ни позволи да видим стойностите на нашите променливи $ wumpus, $ player и $ roomlist. Поради начина, по който настройваме нашия код, знаем, че стаята $ wumpus и $ player room трябва да бъдат елиминирани от $ roomlist.
Когато стартираме този код, можем да проверим, за да се уверим, че е така.
Стъпка 8: Странности с Sugarcube и обекти



Обектите от захарна куба са малко странни. Позволете ми да демонстрирам това.
Докато първоначално изграждах този проект, исках да запазя моя списък със стая в $ променлива на $ saveroom, преди да започна да изтривам стаи от него. Реших, че по -късно ще ми е от полза.
Когато получих някакво странно поведение от този код, добавих още един ред към моята интро страница, за да ми позволи да разгледам променливата си $ saveroom (втора снимка).
Бях шокиран да открия, че елементите, които бях изтрил от $ roomlist, също бяха изтрити от моя запазен списък! Можете да видите това в действие на третата снимка.
Това е така, защото когато копирате масив като този, всъщност не казвате на Twine да копира масива, вие казвате на Twine, че тези две променливи са един и същ масив. Когато правите нещо с масива, използвайки една променлива, той променя същия масив, който гледа другата променлива!
Можем да поправим това с функцията clone ().
Стъпка 9: Функцията Clone ()


Можете да прочетете за функцията clone () на страницата с документация на Sugarcube.
"Плитко" копие е това, което правихме преди. Вместо да прави пълно копие на целия масив, той просто приема, че вашата променлива работи със същия масив. Вместо плитко копие, clone () прави „дълбоко“копие, което се държи така, както бихте очаквали. Всеки елемент от масива се копира в нов масив и е напълно отделен от оригинала.
Ако тестваме този нов код, откриваме, че работи според очакванията.
Разбира се, няма значение дали запазвате $ roomlist или не. За целите на моя проект няма да го направя. Всичко това беше само за демонстрация на дълбоки срещу плитки копия.
Стъпка 10: Това е засега

Добавихме код, който позволява на нашия играч да започне в произволна стая. В допълнение към това елиминирахме грешка, при която играчът би започнал в същата стая като Wumpus.
Научихме как да създаваме връзки от променливи и как копирането на масиви се третира от Sugarcube.
Нещата се ускоряват, но тепърва започваме!
Приятно ловуване!
Препоръчано:
LED звукова реактивна безкрайна куба Крайна маса: 6 стъпки (със снимки)

LED Звуково реактивен Infinity Cube Крайна маса: Уау! Уау! Какъв готин ефект! - Това са някои от нещата, които ще чуете, когато попълните ръководството. Изцяло умопомрачителен, красив, хипнотичен, звуково реактивен безкраен куб. Това е скромно усъвършенстван проект за запояване, отне ми около 12 човека
Общи стаи в канап със захарна куба: 11 стъпки

Общи стаи в канап с Sugarcube: Здравейте и добре дошли в моя урок за изграждане на Wumpus Hunt в Twine with Sugarcube! Twine е много прост инструмент, предназначен за създаване на текстови приключенски игри! Любимият ми малък братовчед е избрал да направи игра с Twine за своя старши проект
Софт стартер (ограничител на пусковия ток) за променливи и постоянни товари: 10 стъпки

Мек стартер (ограничител на пусковия ток) за натоварвания на променлив и постоянен ток: Пусков ток/пренапрежение при включване е максималният моментен входящ ток, извлечен от електрическо устройство при първо включване. Пусковият ток е много по-висок от стационарния ток на натоварването и това е източникът на много проблеми като предпазител bl
Мениджър за връзки в социалния кръг: 7 стъпки (със снимки)

Мениджър за връзки в социалния кръг: какво е това? Поддържането на връзка с всички важни хора във вашия социален кръг може да бъде трудно, особено когато живеете в голям град, работохолик, студент или всичко по -горе. Social Circle предлага начин да задържите всичките си близки в едно
N: Как да направите многопластова акрилна и LED скулптура с променливи нива на осветление: 11 стъпки (със снимки)

N: Как да направите многопластова акрилна и LED скулптура с променливи нива на осветление: Тук можете да разберете как да ви направим много собствени, както е направено за изложбата www.laplandscape.co.uk, курирана от арт/дизайнерска група Lapland. Още изображения могат да се видят на flickr Това изложение работи от сряда 26 ноември - петък 12 декември 2008 г. включително