★ Zmienne
Co to jest zmienna?¶
Umożliwia odwołanie się poprzez wybraną nazwę do określonej wartości. Wygoda posługiwania się zmienną polega na tym, że może być ona używana dokładnie tak samo jak wartość, do której się odwołuje.
Wartość zmiennej może się zmieniać (może otrzymywać różne wartości). Zmienna to również sposób odnoszenia się do wartości, które nie są znane z góry (w chwili pisania kodu) np. użytkownik/czka po uruchomieniu GameBooka wpisuje swoje imię, wynik różnych obliczeń lub przekształceń danych wykonywanych w trakcie postępu graczy w GameBooku.
Nazwy zmiennych - zasady
- nazwa zawsze rozpoczyna się od znaku $ np. $wiek
- pamiętaj, że nazwa zmiennej musi być jednowyrazowa. Jeżeli potrzebujesz do odpowiedniego opisu zmiennej użyć kilku słów możesz to zrobić wg przykładów: $drzwiZamkniete, $drzwi_otwarte. Wybierz jeden styl zapisu i stosuj go cały czas.
- nie używaj polskich znaków np. ą, ę, ż, ź. Przykłady: $imie, $gora, $zamkniete
- nazwy różniące się jedynie wielkością liter są różne
Typy danych¶
Typ | Przykład | Kod |
---|---|---|
Integer Liczba całkowita | 4 | (set: $punkty to 21) |
Float Liczbę zmiennoprzecinkowa | 2.5 | (set: $wzrost to 1.85) |
String Łańcuch znaków | "gra" | (set: $imie to "Max") |
Boolean Typ logiczny | true false | (set: $drzwi_otwarte to true) (set: $drzwi_otwarte to false) |
Zobacz więcej w dokumentacji.
Znacznik (set: ) pozwala na utworzenie nowej zmiennej lub zmodyfikowanie już istniejącej (np. dodanie punktów). Zobacz więcej w dokumentacji.
Tworzenie i wyświetlanie zmiennych¶
Przykład
(set: $imie to "Max")
(set: $ulubiony_kolor to "niebieski")
(set: $wiek to 12)
Cześć $imie, podobno lubisz kolor $ulubiony_kolor i masz $wiek lat.
Rezultat
Operatory i modyfikowanie zmiennych¶
Operator | Opis |
---|---|
+ | dodawanie |
- | odejmowanie |
* | mnożenie |
/ | dzielenie |
% | modulo (reszta z dzielenia) |
Zobacz więcej w dokumentacji.
Przykład
(set: $waga_ziemia to 62)
(set: $waga_ksiezyc to $waga_ziemia / 6)
(set: $waga_jowisz to $waga_ziemia * 2.528)
Na Ziemi ważysz: $waga_ziemia kg.
- gdybyś schudł 10kg to ważyłbyś (print: $waga_ziemia - 10)kg.
---
Na Księżycu ważyłbyś: $waga_ksiezyc kg.
Na Jowiszu ważyłbyś: $waga_jowisz kg.
Rezultat
Punkty¶
Pokażę ci w jaki sposób można wprowadzić system punktacji do twojego GameBooka (punkty początkowe, odejmowanie i dodawanie punktów, końcowe podsumowanie).
Start¶
(set: $punkty to 10)
Witaj!
Na początek swojej przygody otrzymujesz $punkty punktów.
Podejmując decyzje możesz zyskać lub stracić punkty - miej się na baczności!
---
[[Dobry wybór 1]]
[[Zły wybór 1]]
Dobry wybór¶
(set: $punkty to $punkty + 1)
Dobry wybór! Zdobyłeś/aś punkt. Masz już $punkty punktów.
---
[[Dobry wybór 2]]
[[Zły wybór 2]]
Zły wybór¶
(set: $punkty to $punkty - 1)
Zły wybór! Straciłeś/aś punkt. Pozostało ci $punkty punktów.
---
[[Dobry wybór 3]]
[[Zły wybór 3]]
Widok z edytora
Możesz przetestować
Strzałki: cofnij i powtórz¶
Warto pamiętać o zablokowaniu możliwości: cofnij i powtórz. Wejdź w projekcie w zakładkę: "Edit Story Stylesheet" i dodaj regułę CSS. Dzięki temu strzałki cofnij i powtórz nie będą dostępne dla graczy.
tw-sidebar {
display: none;
}
Inkrementacja i dekrementacja¶
Zamiast (set: $punkty to $punkty + 1) możesz użyć (set: $punkty to it + 1)
Zamiast (set: $punkty to $punkty - 1) możesz użyć (set: $punkty to it - 1)
Dobre praktyki¶
Warto zainicjalizować nasze zmienne (nadać zmiennym wartości początkowe) w specjalnej karteczce z tagiem startup. Dzięki temu możemy uniknąć różnych błędów oraz zwiększyć czytelność projektu. Inaczej mówiąc, po uruchomieniu GameBooka zostaną stworzone zmienne, a następnie zostaną przypisane im wartości. Więcej o tagach (np. header/footer) zobacz w dokumentacji.
- Dodaj nową karteczkę (zielony przycisk "Passage" - w prawym dolnym narożniku)
- Dodaj tag startup (opcja "+Tag" - pod tytułem karteczki)
- Zainicjalizuj zmienne
Zmienne mogą przesunąć treść w dół
Zmienne mogą zachowywać się jak niewidzialny dodatkowy górny margines dla zawartości karteczki. W celu uniknięcia tego niechcianego efektu należy zastosować "zgrupowanie" naszych zmiennych. Zauważ, że zrobiłem to w powyższym przykładzie - użyłem znaków {} oraz wcięć dla kodu. {
kod
kod
kod
...
}
Zmienne przy stylizacji¶
Zmienna tymczasowa
Możesz używać zmiennej tymczasowej np. przy stylizacji tekstu - pamiętaj jednak, że będzie ona istniała tylko i wyłącznie w obrębie danej karteczki (fragmentu opowieści). Tworzy się ją używając zamiast znaku $ znak _ na początku nazwy np. _nazwa
(set: _duch to (text-style: "outline"))
Zwykły tekst _duch[Awoo] zwykły tekst.
_duch[Ooooh]
Rezultat