Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
Tak się cieszę, że znów do mnie dołączyłeś! Oznacza to, że Wumpus jeszcze cię nie zjadł. Dobry!
Dla tych z was, którzy nie są zaznajomieni, jest to zestaw samouczków, które tworzę, aby pomóc mojej uroczej kuzynce oochy-skootchy widdle w jej starszym projekcie. Te samouczki mają stanowić odniesienie do tego, co możesz zrobić z niektórymi funkcjami programowania Twine i Sugarcube. Jeśli chcesz kontynuować, pierwszy samouczek znajdziesz tutaj.
W ostatnim samouczku zbudowałem mały zestaw pomieszczeń, które gracz może eksplorować. Dodałem obiekt Wumpus i stworzyłem ogólny kod pokoju, aby zmienić to, co było wyświetlane w każdym pokoju, w zależności od tego, gdzie znajduje się Wumpus.
Krok 1: Stwórz swojego gracza
Ten krok jest bardzo prosty. Zasadniczo używam tego samego kodu, co mój $wumpus, ale zamiast tego używam zmiennej $player.
Krok 2: Nowy kod pokoju
Zmieniono ogólny kod pokoju tak, że wartość $player jest bieżącym pokojem. Następnie porównaj $wumpus z $player zamiast bieżącego pokoju.
Jest to drobna zmiana i nie jest całkowicie konieczna, ale lubię uporządkować mój kod.
Krok 3: Tworzenie łącza ze zmiennej
Na koniec chcę zastąpić link w moim pokoju początkowym takim, który zmienia się na podstawie wartości $player. Można to zrobić za pomocą funkcji „” w SugarCube. Możesz przeczytać więcej na ten temat na stronie dokumentacji Sugarcube.
Pierwszy ciąg znaków po naszym poleceniu to fraza, która pojawi się w naszym fragmencie. Drugi to nazwa fragmentu, do którego chcemy się połączyć. Używam "Poluj na Wumpusa!" jak moja fraza, ale zamiast tego moglibyśmy użyć naszej zmiennej, jeśli chcemy, aby gracz wiedział wcześniej, dokąd zmierza, na przykład:
Krok 4: Test
Kiedy testujesz swój kod, powinieneś zauważyć, że twój link został zastąpiony dowolną frazą, którą napisałeś wcześniej. Kliknięcie go przeniesie Cię do losowego pokoju w grze.
Niestety, może to również doprowadzić Cię prosto do pokoju Wumpusa! W tej chwili nie ma to większego znaczenia, ale w prawdziwej grze, która byłaby natychmiastowa. Musimy to naprawić.
Krok 5: Dodaj listę pokoi
Najpierw utworzymy listę pokoi, aby ułatwić zarządzanie pokojami. Deklarując tę tablicę, możemy jej użyć do ustawienia naszych wartości $player i $wumpus bez powtarzania kodu. Ma też inną zaletę, którą omówimy dalej.
Testowanie za pomocą tego kodu powinno zachowywać się tak jak wcześniej.
Krok 6: Eliminacja pokoi
Do poprzedniego kodu dodałem pojedynczą linię kodu (podświetlone).
Tablice w Sugarcube mają wbudowaną funkcję, która pozwala usuwać z nich elementy według nazwy. W tym przypadku, kiedy już przypiszemy $wumpusowi pokój, możemy go usunąć z naszej $roomlist. Ta funkcja jest jednak wybredna. Nie zadziała, dopóki wyjście funkcji nie zostanie przypisane lub w jakiś sposób wykorzystane. Aby się tym zająć, stworzyłem zmienną tymczasową _temp.
W Sugarcube zmienne tymczasowe zaczynają się od podkreślenia (_) zamiast dolara ($). Są przydatne, ponieważ są usuwane po uruchomieniu fragmentu, więc nie musisz się martwić o nakładanie się nazw zmiennych.
Usuwam również $player room z $roomlist, oczywiście.
Krok 7: Testowanie
Chociaż moglibyśmy uruchomić kod tak, jak jest teraz, nie byłby to bardzo dokładny test. Jeśli uruchomimy kod i stwierdzimy, że $player i $wumpus są przypisane do różnych pokoi, nie wiemy, czy to dlatego, że kod działa, czy to tylko przypadek. Jasne, moglibyśmy uruchomić kod wiele razy i założyć, że jeśli nigdy nie przydzieli im obu tego samego pokoju, to nigdy nie będzie, ale to zajmie wieczność i nadal nie jest to 100% pewność, że to się nigdy nie stanie.
Zamiast tego potrzebujemy sposobu na sprawdzenie.
Dodałem trzy wiersze na początku naszego fragmentu wprowadzającego, które pozwolą nam zobaczyć wartości naszych zmiennych $wumpus, $player i $roomlist. Ze względu na sposób, w jaki ustawiliśmy nasz kod, wiemy, że $wumpus room i $player room powinny zostać usunięte z $roomlist.
Kiedy uruchamiamy ten kod, możemy sprawdzić, czy tak właśnie jest.
Krok 8: Dziwactwa z kostką cukru i przedmiotami
Przedmioty SugarCube są trochę dziwne. Pokażę to.
Kiedy pierwotnie budowałem ten projekt, chciałem zapisać moją $roomlist w zmiennej $saveroom, zanim zacząłem usuwać z niej pokoje. Pomyślałem, że przyda się później.
Kiedy zauważyłem dziwne zachowanie tego kodu, dodałem kolejną linię do mojej strony wprowadzającej, abym mógł spojrzeć na moją zmienną $saveroom (drugi obrazek).
Byłem zszokowany, gdy odkryłem, że elementy, które usunąłem z $roomlist, zostały również usunięte z mojej zapisanej listy! Widać to w akcji na trzecim zdjęciu.
Dzieje się tak, ponieważ kiedy kopiujesz tablicę w ten sposób, nie mówisz Twine'owi, aby skopiował tablicę, mówisz Twine'owi, że te dwie zmienne są tą samą tablicą. Kiedy robisz coś z tablicą przy użyciu jednej zmiennej, zmienia ona tę samą tablicę, na którą patrzy druga zmienna!
Możemy to naprawić za pomocą funkcji clone().
Krok 9: Funkcja Clone()
Możesz przeczytać o funkcji clone() na stronie dokumentacji Sugarcube.
„Płytka” kopia to to, co robiliśmy wcześniej. Zamiast tworzyć kompletną kopię całej tablicy, zakłada po prostu, że twoja zmienna pracuje z tą samą tablicą. Zamiast płytkiej kopii clone() wykonuje "głęboką" kopię, która zachowuje się tak, jak można by się tego spodziewać. Każdy element tablicy jest kopiowany do nowej tablicy i jest całkowicie oddzielony od oryginału.
Jeśli przetestujemy ten nowy kod, okaże się, że działa on zgodnie z oczekiwaniami.
Oczywiście nie ma znaczenia, czy trzymasz $roomlist, czy nie. Na potrzeby mojego projektu nie zamierzam. Wszystko po to, by zademonstrować kopie głębokie i płytkie.
Krok 10: To wszystko na teraz
Dodaliśmy kod, który pozwala naszemu graczowi rozpocząć grę w losowym pokoju. Oprócz tego usunęliśmy błąd, przez który gracz zaczynał w tym samym pomieszczeniu, co Wumpus.
Dowiedzieliśmy się, jak tworzyć linki ze zmiennych i jak Sugarcube traktuje kopiowanie tablic.
Sprawy nabierają tempa, ale dopiero zaczynamy!
Pomyślnych łowów!
Zalecana:
Ogólne pokoje w sznurku z kostką cukru: 11 kroków
Ogólne pokoje w Twine With Sugarcube: Witam i witam w moim samouczku dotyczącym budowania Wumpus Hunt w Twine with Sugarcube!Twine to bardzo proste narzędzie, przeznaczone do tworzenia tekstowych gier przygodowych! Moja ulubiona mała kuzynka postanowiła stworzyć grę ze Sznurkiem do swojego starszego projektu
Definiowane programowo radio na sznurku: 9 kroków (ze zdjęciami)
Radio definiowane programowo na sznurku: Na początku był zestaw kryształów - pierwszy praktyczny odbiornik radiowy. Potrzebował jednak długiej anteny i mógł odbierać tylko lokalne stacje. Kiedy pojawiły się zawory (rurki, dla naszych amerykańskich przyjaciół) umożliwiły one zbudowanie znacznie więcej
Generuj linki partnerskie (polecające) Banggood łatwiej niż kiedykolwiek: 4 kroki
Generuj linki partnerskie (polecające) Banggood łatwiejsze niż kiedykolwiek: skróconą wersję tej instrukcji można znaleźć na moim osobistym blogu Sprzedaż partnerska jest doskonałym źródłem dodatkowego dochodu dla twórców treści, a wiele osób korzystających z instrukcji korzysta z nich. Jedna z bardziej popularnych witryn, które mają Program partnerski to Ban
Dozownik cukru: 7 kroków (ze zdjęciami)
Dozownik cukru: STRESZCZENIE: Generalnie używamy torebek z cukrem, aby nie dochodziło do marnotrawstwa cukru i nie dochodziło do jego marnowania. używamy dwóch rąk do odrywania pakietów, co jest dość trudne dla bardzo zajętych osób, aby zmniejszyć ten problem, wprowadzamy „
Jak sprawdzić poziom cukru we krwi: 10 kroków (ze zdjęciami)
Jak sprawdzić poziom cukru we krwi: Zarządzanie poziomem cukru we krwi ma kluczowe znaczenie dla osób cierpiących na cukrzycę. Ważne jest, aby wiedzieć, jak prawidłowo monitorować te poziomy. Aby zapewnić dokładność wyników, należy wykonać kilka czynności