Lekcja 17 – Skrzynie i warunki

Jeśli sumiennie przerabialiście wszystkie dotychczasowe lekcje, macie już w rękach większość narzędzi, by stworzyć kompletną grę. Dziś postaramy się wykorzystać sporą część tego, czego się już nauczyliśmy, w praktyce. Wprowadzimy także ostatni niezbędny element naszego warsztatu, który jest absolutnie niezbędny – warunki!

Skrzynia ze skarbem

Praktyczne zajęcia zaczniemy od stworzenia standardowej skrzyni ze skarbem, którą umieścimy gdzieś na mapie wioski. Ustawiamy jej grafikę z charsetu Object1, Trigger zostawiamy na Action Button, Priority na Same as Characters. Bardzo ważne jest to, by w Animation Type ustawić Fixed Graphic!

Z komend najpierw wybieramy odgłos otwierania, następnie poruszamy grafiką eventu tak samo jak w przypadku stworzonych kilka lekcji wcześniej drzwi. Potem wstawiamy Wait na pół sekundy (warto to czasami robić, żeby gracz mógł zauważyć, że skrzynka się otwierała). Następnie za pomocą komendy Change Items dodajemy do plecaka bohatera jedną Miksturę HP i wyświetlamy stosowny komunikat. Ostatnią czynnością jest zmiana przełącznika wytypowanego dla tej skrzyni na ON.

W dalszej kolejności tworzymy drugą stronę zdarzenia, w Conditions wskazując zmieniony wcześniej przełącznik. Jako grafikę ustawiamy otwartą skrzynię, a w komendach dajemy informację o tym, że skrzynia jest pusta.

Skrzynie są świetnym sposobem na urozmaicenie dungeonów, dlatego taką samą warto postawić w jednej z komnat naszej jaskini (pamiętajcie, by użyć innego przełącznika!).

Skrzynia z potworem w środku

Innym popularnym typem skrzyń są tzw. pułapki. Polegają na tym, że nieświadomy niczego gracz podchodzi do skrzyni i ją otwiera, a zamiast lub obok skarbu czeka na niego walka. Łatwo to zrobić korzystając z tej samej komendy, która wywoływała walkę z bossem. Modyfikacja poprzedniej skrzyni wyglądałaby tak:

Skrzynia zamknięta na klucz

Tym razem stworzymy skrzynię, która jest zamknięta na klucz. Najpierw w zakładce Items w bazie danych tworzymy nowy przedmiot o nazwie Klucz, typie Normal Goods i cenie 20. Klucze mogą leżeć porozrzucane po grze, mogą także wypadać z potworów, ale my umieśćmy je po prostu w sklepie, który postawiliśmy kilka lekcji temu.

Tym razem event z naszą skrzynią będzie miał trzy strony. Na pierwszej puszczamy odgłos zamknięcia (sugerujący, że skrzyni mimo prób nie daje się otworzyć) oraz komunikat, że gracz potrzebuje klucza.

W drugiej stronie w Conditions ustawiamy Item Klucz. Komendy są mniej więcej takie same, jak w pozostałych skrzyniach. Pamiętajcie tylko, by na końcu zabrać graczowi jeden Klucz, inaczej będzie mógł się nim posługiwać w nieskończoność!

Ostatnia strona to standardowy komunikat o tym, że skrzynia jest pusta.

Skrzynia z losowym przedmiotem i warunek

Teraz czas na najciekawszą chyba część lekcji. Tworzymy nową skrzynię w typie podstawowym (bez klucza i potwora). Dwie pierwsze komendy zostawiamy takie same – poruszanie eventem i wait. Następnie przy pomocy Change Variables wybieramy nową zmienną (np. Losowanie) i ustawiamy jej wartość na Random od 1 do 2 – podobnie, jak robiliśmy przy studni.

Teraz wybieramy komendę Conditional Branch (trzecia strona, piąta od góry). To okienko służy do sprawdzania, czy konkretna okoliczność zachodzi w grze (tj. wprowadza w projekcie tzw. warunki).

Ustawmy w polu Variable zmienną, której użyliśmy do losowania, w Constant wpisujemy 1 i zaznaczamy pole w sekcji Options na dole. Zatwierdzamy OK. Dzięki temu zażądaliśmy, by program sprawdził, czy zmienna Losowanie jest równa 1, czy też nie. Jeśli jest, wykonane zostaną komendy znajdujące się bezpośrednio pod napisem Conditional Branch: Variable [0005:Losowanie] == 1. Jeśli natomiast zmienna ma inną wartość, wykonane zostaną komendy znajdujące się bezpośrednio pod napisem Else. Niezależnie od tego, która opcja została wylosowana, komendy dalej będą się normalnie wykonywać po napisie Branch End.

Jeśli zmienna Losowanie wynosi 1, dajemy graczowi Miksturę HP, a jeśli nie – 100 sztuk złota. Powinno to wyglądać tak:

Podsumujmy działanie naszego skryptu. Najpierw wyświetlana jest animacja otwieranej skrzyni. Następnie program losuje jedną z liczb z przedziału 1-2 (czyli może wylosować albo 1, albo 2). Później sprawdzamy, czy wylosowana została liczba 1. Jeśli tak, dajemy graczowi miksturę, jeśli nie (czyli została wylosowana liczba 2, innej możliwości nie ma) – nagrodą będą pieniądze. Na koniec zmieniany jest przełącznik, który włącza stronę z informacją o tym, że skrzynia jest pusta.

Warunek

Warunek (Conditional Branch) jest, obok zmiennych, najważniejszy narzędziem w pracy nad grą. Pozwala reagować na to, co robi gracz, przez co produkcja staje się bardziej atrakcyjna. Część z Was mogła zauważyć, że warunek przypomina pole Conditions w tworzonych eventach. To nie przypadek – do tej pory stosowaliśmy bowiem warunki, ale tylko dla poszczególnych stron w zdarzeniach! Dzięki komendzie Conditional Branch możemy tworzyć warunki wewnątrz zdarzeń.

Bardzo ważnym elementem warunku jest opcja Else. Żeby ją wykorzystać, należy zaznaczyć opcję Set handling when conditions do not apply w okienku z Conditional Branch. Dzięki temu możemy wywołać odpowiednie komendy nie tylko, gdy warunek jest spełniony, ale także wtedy, gdy nie jest.

Elementy okienka Conditional Branch są dosyć intuicyjne i nie będę ich tłumaczył. Jeśli macie z nimi problemy – piszcie w komentarzach!

W następnej lekcji – tworzenie gospód i zarządzanie HP gracza!

ŚCIĄGNIJ PROJEKT Z LEKCJI

Michał „Michu” Wysocki

Dodaj komentarz

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