Press "Enter" to skip to content

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

TypPrzykładKod
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

Rezultat: Cześć Max, podobno lubisz kolor niebieski i masz 12 lat.

Operatory i modyfikowanie zmiennych

OperatorOpis
+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

Rezultat: Na Ziemi ważysz: 62 kg - gdybyś schudł 10 kg to ważyłbyś 52 kg.
Na Księżycu ważyłbyś: 10.333 kg. Na Jowiszu ważyłbyś: 156.736 kg.

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

Widok z edytora: Karteczka start jest połączona z karteczkami: dobry wybór 1 oraz zły wybór 1. Karteczka dobry wybór 1 jest połączona z karteczkami: dobry wybór 2 oraz zły wybór 2. Karteczka Zły wybór 1 jest połączona z karteczkami dobry wybór 3 oraz zły wybór 3. Ostatnie karteczki są połączone z karteczką koniec.

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;
}
Opcja: "Twój projekt" - "Edit Story Stylesheet"

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.

  1. Dodaj nową karteczkę (zielony przycisk „Passage” – w prawym dolnym narożniku)
  2. Dodaj tag startup (opcja „+Tag” – pod tytułem karteczki)
  3. Zainicjalizuj zmienne
Zawartość karteczki "Inicjalizacja zmiennych": { (set: $punkty to 10) (set: $klucz_znaleziony to false) (set: $brama_zamknieta to true) (set: $latarka_wlaczona to false) (set: $zagadka_rozwiazana to false) }
Twine - Widok z edytora. Na grafice widać kilka przykładowych karteczek oraz karteczkę "Inicjalizacja zmiennych"

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
    ...
}

Więcej w dokumentacji.

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

Rezultat: Zwykły tekst Awoo (czcionka z podwójnej linii) zwykły tekst. Ooooh (czcionka z podwójnej linii).

Więcej informacji

Rozmiar czcionki
Kontrast