Lekcja 6 – Przełącznik

Rozpoczęcie pracy ze zdarzeniami otworzyło przed nami ogromne możliwości. By z nich w pełni skorzystać, musimy opanować kilka narzędzi bardzo podobnych do tych spotykanych w językach programowania. Jednym z nich jest przełącznik (switch).

Przełącznik posiada w RPG Makerze tylko dwie wartości – ON (włączony) oraz OFF (wyłączony). Zmiana stanu przełącznika następuje głównie, choć nie tylko, przy użyciu komend. Na tę chwilę musicie zapamiętać tylko, że dopóki gracz lub skrypt nie włączy przełącznika, zawsze będzie on znajdował się w stanie OFF.

Uzbrojeni w teorię, przechodzimy do praktyki. Czas stworzyć okno, które gracz będzie mógł otwierać i zamykać! W tym celu usuwamy jedno z okienek naszej chatki, a w jego miejsce wstawiamy zdarzenie o nazwie Okno. Gracz nie będzie mógł w tej chwili podejść do okna, ponieważ drogę będzie blokować skrzynka na listy. Musimy ją usunąć – należy w tym celu wybrać pierwszą kratkę z górnej warstwy tileseta i zamalować nią niechciany element.

W nowo utworzonym evencie ustawiamy Graphic na grafikę zamkniętego okna. Nie zmieniamy jednak nic innego – dzięki temu okno będzie sobie po prostu wisiało i czekało, aż będziemy chcieli coś z nim zrobić.

Teraz proszę o skupienie, ponieważ przechodzimy do rzeczy niezmiernie istotnej, a niezbyt intuicyjnej. Skoro chcemy stworzyć możliwość otwierania i zamykania okna, oznacza to, że w naszym zdarzeniu mają zajść pewne zmiany. Można je wykonać na kilka sposobów, ale najlepszym wyjściem jest zastosowanie przełącznika. Musimy stworzyć nową stronę w zdarzeniu (New page). Na stronie 2 ustawiamy tym razem Graphic otwartego okna. Następnie w polu Conditions zaznaczamy Switch i klikamy dwukrotnie w białe pole z tekstem 0001. Otworzy nam się lista przełączników projektu.

W nowym okienku możemy nadawać nazwy swoim przełącznikom oraz zmieniać ich łączną liczbę przy pomocy klawisza Maximum Number. Warto wybierać przemyślane nazwy, ponieważ przy odpowiednim rozmiarze projektu funkcje switchy łatwo się nam mogą pomieszać. Nazwijmy przełącznik 0001 Okno i kliknijmy OK. Druga strona zdarzenia powinna wyglądać w ten sposób:

Podsumowując, stworzyliśmy zdarzenie, które ma dwie strony. Na pierwszej, bez żadnego warunku, znajduje się grafika zamkniętego okna. Druga strona natomiast to otwarte okno, pojawiające się wyłącznie, gdy przełącznik 0001:Okno jest włączony. Program sprawdza warunki stron w zdarzeniu zaczynając od najwyższych numerów – jeśli któraś strona posiada spełniony warunek, strony o mniejszych numerach nie są już sprawdzane. Tryb analizy RPG Makera będzie więc taki:

  1. sprawdzam warunek strony nr 2 – czy przełącznik 0001 jest włączony
  2. jeśli przełącznik jest włączony, wyświetlam grafikę otwartego okna i kończę analizę zdarzenia
  3. jeśli przełącznik nie jest włączony, sprawdzam warunek strony nr 1 – strona nie ma warunku
  4. wyświetlam grafikę zamkniętego okna.

Gdyby pierwsza strona także miała warunek, i żaden z warunków na obu stronach by się nie spełnił, gra po prostu nie wyświetliłaby żadnej grafiki okna.

W porządku, mamy już okno – teraz musimy stworzyć skrypt, który będzie je otwierał i zamykał. W tym celu wstawiamy nowe zdarzenie, także z dwiema stronami, które będzie znajdować się na budynku pod oknem, tuż przy ziemi (tak, żeby gracz mógł do niego podejść). Nazywamy je Otwarcie okna. Na obu stronach ustawiamy Priority na Same as Characters – dzięki temu gracz nie będzie musiał wchodzić na event, by go aktywować (nie jest to możliwe, bo event znajduje się przecież na ścianie budynku).

Teraz w Contents dodajemy komendę i z listy wybieramy Control Switches… (pierwsza strona, szósta pozycja od lewej). W polu Single ustawiamy nasz przełącznik numer 0001 (powinien już być tam domyślnie), a w polu Option zaznaczamy ON. Zatwierdzamy wszystko przyciskiem OK. Na drugiej stronie eventu ustawiamy Switch 0001 jako warunek, a w komendach – wyłączenie tego przełącznika. Druga strona zdarzenia powinna wyglądać tak:

Jak zdążyliście już zauważyć, skrypt na otwieranie okna rozdzieliliśmy na dwa eventy – grafikę okna oraz sterowanie nim. Wynika to z faktu, że okno znajduje się w miejscu niedostępnym dla gracza i trudno od niego oczekiwać, że tam podejdzie. W trakcie tworzenia gry często jednak będzie pojawiać się potrzeba tworzenia jednego eventu, który będzie się zmieniał wraz z zachowaniem bohatera – pamiętajcie, że niemal wszystko w RPG Makerze można robić na kilka różnych sposobów i to do was należy wybór możliwie najbardziej optymalnego rozwiązania.

Zwróćcie także uwagę na fakt, że choć gracz aktywuje tylko jeden event, skutki tego kliknięcia natychmiast są pokazywane przez inny. Wynika to z faktu, że RPG Maker nie posiada lokalnych zmiennych i przełączników. Mówiąc prościej, jeśli gracz włączy jakiś przełącznik, wszystkie mapy, skrypty i zdarzenia będą „widziały”, że jest on włączony. Dlatego tak łatwo jest stworzyć jedno zdarzenie, które będzie manipulować innym.

Podsumowując, gracz podchodząc do zdarzenia o nazwie Otwarcie okna i klikając przyciskiem akcji uruchamia komendę zmiany przełącznika nr 0001 na ON. Zdarzenie nie ma więcej komend, więc się kończy. Okno u góry zostało zmienione na otwarte, ponieważ został spełniony warunek na drugiej stronie zdarzenia okno. Jednocześnie w zdarzeniu Otwarcie  okna także spełniony jest warunek dla drugiej strony (bo oba warunki są takie same). Dlatego gdy gracz ponownie naciśnie przycisk, uruchomiona zostanie komenda wyłączająca przełącznik nr 0001. Całość wróci zatem do punktu wyjścia.

Bardzo proszę o spokojne przeanalizowanie tej lekcji, ponieważ bez intuicyjnego używania przełączników nie ruszymy dalej, a czekają już na nas rzeczy o wiele bardziej skomplikowane.

ŚCIĄGNIJ PROJEKT Z LEKCJI

Michał „Michu” Wysocki

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.