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

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

Tworzenie i wyświetlanie zmiennych



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

Operatory



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 1

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

Strzałki: cofnij i powtórz


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

Widok z edytora 2

Widok z edytora 3

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

Zmienna tymczasowa



Więcej informacji