Jak stworzyć sztuczną inteligencję dla wrogiego slima

Uwaga: Ukończony plik projektu dla tego samouczka można znaleźć na końcu tego artykułu.
Wprowadzenie
W tym samouczku stworzymy sztuczną inteligencję (AI) dla przekonującego wroga - slime'a do gry w stylu platformera. Omówimy kilka bardziej zaawansowanych funkcji i zachowań w hyperPad, dlatego ten samouczek zakłada podstawową znajomość edytora hyperPad. Jeśli uważasz, że musisz zapoznać się bardziej z tworzeniem gry od podstaw, możesz najpierw sprawdzić samouczek Kompletny przewodnik - Tworzenie gry platformowej.
Aby slime wyglądał na "inteligentnego", powinien robić więcej niż tylko poruszać się w przód i w tył, powinien być świadomy swojego otoczenia.
Brzmi ekscytująco! Ale zanim zaczniemy, powinniśmy najpierw określić, jak powinien zachowywać się wrogi slime:
- Zamiast chodzić, slime będzie skakał w lewo lub w prawo, aby się poruszać.
- Slime będzie skakał w kierunku gracza.
- Jeśli gracz jest za daleko, slime nie będzie się poruszać (bez ruchu).
- Slime odejmie zdrowie gracza przy kontakcie.
- Slime zostanie pokonany, jeśli gracz skoczy na niego.
Teraz, gdy wiemy, co chcemy zrobić, zaczynajmy!
Część 1: Ustawienia projektu
W tym samouczku zaczniemy nowy projekt od zera, aby utrzymać prostotę. Stwórz nowy projekt i ustaw go na "Widok boczny", możesz pozostawić inne ustawienia jako domyślne.
Po utworzeniu nowego projektu, przejdź do Biblioteki zasobów i weź "Pakiet startowy platformera" od hyperPad w sklepie z zasobami. (Jest darmowy!)
Teraz, gdy mamy kilka zasobów, idź i umieść kilka bloków ziemi i stwórz swój świat. Jeśli już tam nie jesteś, przejdź do Biblioteki zasobów i stuknij w "Pobrania", następnie "Pakiet startowy platformera".
Na poniższym obrazku umieszczono kilka bloków ziemi (folder "Grass World") oraz ustawiono tło (folder "Backgrounds").
Teraz, gdy mamy ładną scenę do pracy, dodajmy obiekty Gracza i Slime'a. Przejdź do Biblioteki zasobów i otwórz folder "Pobrania", a następnie folder "Pakiet startowy platformera", jeśli nie są już otwarte.
Użyjemy "Zielonego kosmonauty" jako gracza, więc stuknij w zasób zielonego kosmonauty, aby zobaczyć wszystkie jego cykle animacji. Domyślnie chcemy, aby gracz po prostu stał, więc stuknij w animację "Stoi" i umieść ją na scenie.
W tym samym folderze w Bibliotece zasobów znajduje się również animowany charakter "Różowy slime". Idealny do użycia jako zły slime! Stuknij w zasób slime'a i wybierz animację "Ruch" i umieść slime'a na swojej scenie z postacią gracza.
Jak na razie, dobrze! Mamy nasz obiekt gracza i obiekt slime'a, gotowe do użycia. Ale jeśli teraz zagramy w nasz projekt, nie będziemy mogli wcale interagować z grą. Musimy więc stworzyć jakąś logikę, aby wprowadzić życie do naszej gry.
Część 2: Kontrola gracza
Zanim zaczniemy nadawać naszemu wrogowi slime'owi życia, najpierw powinniśmy zapewnić trochę kontroli gracza dla zielonego kosmonauty.
Stuknij w zielonego kosmonautę i ustaw jego tryb fizyki z Wall na Physical, co pozwoli graczowi poruszać się swobodnie. Następnie stuknij przycisk "Zachowania", aby otworzyć edytor zachowań dla naszej postaci gracza, abyśmy mogli dodać kontrolę.
W edytorze zachowań dla naszej postaci gracza powinieneś już widzieć samotne zachowanie Odtwarzaj animację. Możemy to zostawić w spokoju, ale możemy dodać mu kilku przyjaciół.
Poniżej sekcji Interakcja, umieść gdziekolwiek zachowanie Sterowanie Joystickiem oraz zachowanie Skok z przyciskiem. Dzięki tym zachowaniom nasz gracz jest teraz gotowy do sterowania. Ale brakuje mu trochę animacji.
Stuknij w zachowanie Sterowanie Joystickiem i ustaw animację "Sterowanie Joystickiem w lewo" na cykl animacji "Chodzi" w zasobie Zielonego kosmonauty. Zrób to samo z "Animacją w prawo Joysticka".
Teraz nasza postać gracza chodzi, ale wciąż nie animuje podczas skakania.
Stuknij w zachowanie Skok z przyciskiem i zmień zarówno animację "Spadek", jak i "Skok" na cykl animacji "Skok".
Jeśli teraz zagramy w naszą grę, możemy się poruszać i skakać! Następnie możemy zacząć pracować nad naszym wrogiem slime'em.
Część 3: Ruch slime'a
Jak określiliśmy w sekcji wprowadzenia tego samouczka, chcemy, aby nasz slime skakał w kierunku gracza. Aby to zrobić, nasz slime musi wiedzieć, gdzie jest gracz w świecie. Dlatego powinniśmy dodać Tag do naszej postaci gracza, aby nasze zachowania mogły odzyskać naszą postać gracza w każdej scenie.
Stuknij w postać gracza i wybierz zakładkę Tagi na dole widoku właściwości. Wpisz "Gracz" w polu tekstowym na górze menu tagów i naciśnij przycisk dodawania (+) obok niego. Teraz nasza postać gracza jest oznaczona tagiem "Gracz".
Podobnie jak w przypadku postaci gracza, stuknij w slime'a i ustaw jego tryb fizyki z Wall na Physics. Następnie stuknij przycisk "Zachowania", aby otworzyć edytor zachowań slime'a.
W edytorze zachowań przejdź do sekcji Niestandardowy i umieść zachowanie Timer w edytorze.
Stuknij w zachowanie Timer i ustaw jego interwał na 2 sekundy.
To będzie początek naszej logiki dla sztucznej inteligencji slime'a.
Idea jest taka, że co 2 sekundy, nasz slime "pomyśli" o tym, co zrobić dalej, na przykład: Czy slime powinien skoczyć? Jeśli zdecyduje się skoczyć, w jakim kierunku powinien skoczyć?
Następnie przejdź do sekcji Transformacja i umieść zachowanie Uzyskaj pozycję. Stuknij w to i ustaw jego cel na tag "Gracz", którego stworzyliśmy wcześniej, stukając w zakładkę Tagi na dole widoku właściwości i wybierając "Gracz". Teraz połącz Timer z zachowaniem Uzyskaj pozycję.
Teraz znamy położenie naszego gracza w świecie! Aby określić, czy gracz jest po lewej czy po prawej stronie slime'a, musimy również wiedzieć, gdzie slime znajduje się w świecie.
Przeciągnij kolejne zachowanie Uzyskaj pozycję do edytora. Domyślnie zachowanie już celuje w naszego slime'a, więc nie musimy nic więcej robić poza połączeniem go z naszymi gałęziami logiki. Połącz zachowanie Uzyskaj pozycję dla gracza z zachowaniem Uzyskaj pozycję dla slime'a.
Opcjonalnie: Aby ułatwić zrozumienie, zmieniłem nazwy moich zachowań Uzyskaj pozycję, aby jasno wskazywały, co śledzą: "Uzyskaj pozycję gracza" i "Uzyskaj pozycję slime'a". To jest opcjonalne, ale jeśli również chcesz zmienić nazwy zachowań, możesz to zrobić, stukając w zachowanie i uderzając w jego nazwę na samym górze widoku właściwości.
Jak na razie, co mamy, to że co 2 sekundy slime odzyskuje pozycję postaci gracza i siebie samego. Teraz, gdy mamy te informacje, możemy określić, czy slime powinien skakać w lewo czy w prawo.
Poniżej zakładki Logika umieść i połącz zachowanie If. W jego właściwościach ustaw pierwszą wartość na x-pozycję pierwszego zachowania Uzyskaj pozycję (tag "Gracz") przeciągając wartość wyjściową zachowania do pola w właściwościach If. Dla drugiej wartości ustaw ją na x-pozycję drugiego zachowania Uzyskaj pozycję (slime). Na koniec ustaw warunek zachowania If na "Mniejsze niż" (<).
Uwaga: x-pozycja obiektu to wartość reprezentująca, gdzie obiekt znajduje się w świecie na osi x. (Lewo i prawo)
Więc, co to wszystko oznacza? Zachowanie If sprawdzi, czy x-pozycja gracza jest mniejsza niż x-pozycja slime'a. Jeśli to prawda, to wywoła następne połączone zachowanie. Co to zasadniczo oznacza, że jeśli gracz znajduje się dalej na lewo niż slime, wtedy wykonanie zachowania będzie kontynuowane.
Alright, teraz mamy ustawioną logikę, aby slime skakał w lewo, więc zróbmy dokładnie to!
Poniżej sekcji Fizyka umieść i połącz zachowanie Zastosuj siłę z zachowaniem If. W jego właściwościach ustaw Siłę na: x = -0.5, y = 1. Następnie ustaw multiplikator na dość dużą liczbę, 200 powinno wystarczyć.
Co mamy teraz, to że jeśli slime zauważy gracza dalej na lewo niż on sam, to skoczy w górę (y = 1 × 200) i trochę w lewo (x = -0.5 × 200).
Wypróbuj to! Zagraj w grę i przetestuj, czy wszystko działa. Powinieneś zobaczyć, jak slime skacze w lewo co 2 sekundy, tak długo jak gracz jest po lewej stronie. Jeśli przesuniesz gracza na prawo od slime'a, powinien przestać skakać, aż znów go przesuniesz w lewo.
Uwaga: Jeśli twój slime się nie porusza, przejrzyj wcześniejsze kroki, aby upewnić się, że niczego nie przegapiłeś. Upewnij się, że zachowania są prawidłowo połączone oraz że tryb fizyki slime'a jest ustawiony na Fizyka (ruchomy) zamiast na Wall (nie-ruchomy). Ponadto wkrótce naprawimy problem, w którym slime czasami przewraca się na bok alebo do góry nogami.
Świetny postęp jak na razie! Jeśli twój slime skacze w oczekiwany sposób, to jesteśmy gotowi, aby kontynuować. Zakończmy jego zachowania ruchowe, pozwalając slime'owi również skakać w prawo.
Wracając do edytora zachowań slime'a, sklonuj zachowanie If. Przeciągnij i wstaw nowe zachowanie If po prawej stronie oryginalnego zachowania If. Sprawi to, że zamieni się w zachowanie "Else If".
Sklonuj również zachowanie Zastosuj siłę i połącz je z nowym zachowaniem Else If.
W właściwościach Else If zmień warunek z "Mniejsze niż" (<) na "Większe niż" (>). Będzie to miało odwrotny skutek niż pierwszy If. Jeśli pierwszy If nie jest prawdziwy, to zostanie sprawdzone, czy Else If jest prawdziwy zamiast. Oznacza to, że jeśli gracz nie będzie po lewej stronie slime'a, sprawdzi, czy gracz jest po prawej stronie slime'a i kontynuuje wykonywanie zachowań związanych z Else If.
Powinieneś teraz mieć gałąź zachowań, która wygląda mniej więcej tak:
W drugim Zastosuj siłę (pod Else-If) zmień jego właściwości tak, aby jego siła wynosiła x = 0.5, zamiast x = -0.5. Teraz zamiast skakać w lewo, slime będzie skakał w prawo.

Zagraj w projekt i spróbuj ponownie! Teraz powinieneś zobaczyć, że slime skacze w kierunku, w którym znajduje się gracz. Doskonale!
Jedną rzeczą, którą mogłeś zauważyć podczas testowania gry, jest to, że jeśli kolidujesz z slime'em, może czasami przewrócić się na bok lub na plecy. Chcemy, aby slime stał na baczność, więc naprawmy to szybko.
Wracając do edytora zachowań slime'a, przejdź do sekcji Zachowanie transformacji i umieść zachowanie Zablokuj rotację w edytorze. Nie ma potrzeby łączyć go z innym zachowaniem, chcemy, aby zablokowało swoją rotację od razu, gdy slime zostanie stworzony, więc możesz go zostawić tak, jak jest. Po zrobieniu tego spróbuj ponownie gry. Tym razem powinieneś mieć trudności z próbą przewrócenia slime'a na bok.
Mogłeś również zauważyć, że animacja slime'a odtwarza się zbyt szybko. Jeśli tak się dzieje, stuknij w zachowanie Odtwarzaj animację w edytorze zachowań slime'a i zmień Liczbę klatek na sekundę na znacznie mniejszą liczbę. 6 klatek na sekundę wygląda całkiem dobrze.
Świetnie! Teraz nasz slime nie tylko porusza się przyjemnie, ale również dobrze wygląda. W zasadzie logika ruchu naszego slime'a jest ukończona.
Jednak chcemy również, aby slime skakał tylko, jeśli gracz jest w pobliżu. Dzięki temu, jeśli zbudujemy większy świat, slime'y w oddali nie będą natychmiast próbować skakać ku graczowi i atakować go. W następnej części przyjrzymy się dodaniu kolejnego warunku, aby zablokować logikę skakania, jeśli gracz jest zbyt daleko.
Część 4: Bezczynność slime'a
W tej części wdrożymy pewne zachowania slime'a, które sprawią, że będzie on bezczynny (to znaczy, że nie będzie się poruszał), gdy gracz jest zbyt daleko.
Aby to osiągnąć, musimy znaleźć sposób na zmierzenie odległości od naszego slime'a do gracza. Na szczęście, są dostępne zachowania, które robią dokładnie to! Zaczynajmy.
Otwórz edytor zachowań slime'a i przeciągnij behavior Oblicz odległość z sekcji Logika. W jego właściwościach, pierwszy obiekt jest już ustawiony na naszego slime'a. Dla drugiego obiektu przejdź do menu zakładek i wybierz tag "Gracz".
To zachowanie, po wykonaniu, obliczy odległość w metrach od naszego slime'a do gracza. Używając tych informacji, możemy sprawdzić, czy gracz jest zbyt daleko, sprawdzając, czy przekracza pewną odległość.
Umieść kolejne zachowanie If z sekcji Logika i połącz je pod behavior Calculate Distance. W właściwościach zachowania If ustaw pierwszą wartość na wynik zachowania Calculate Distance. Ustaw warunek na "Mniejsze niż" i drugą wartość na 15.
Teraz mamy sposób na sprawdzenie, czy gracz jest zbyt daleko, sprawdzając, czy odległość między slime'em a graczem jest mniejsza niż 15 (metrów). Jeśli ten warunek jest fałszywy, to gracz jest zbyt daleko i zachowanie If nie wykona następnego zachowania.
Teraz, gdy mamy nowy warunek gotowy do użycia, rozłącz zachowanie Uzyskaj pozycję (slime) i stare zachowanie If z poprzedniej części samouczka i zrób miejsce na nasz nowy warunek. Możesz rozłączyć zachowania, naciskając i przytrzymując połączenia między zachowaniami.
Gdy nowy warunek odległości jest na miejscu, połącz Uzyskaj pozycję (slime) z zachowaniem Oblicz odległość, a następnie połącz nowe zachowanie If ze starym zachowaniem If. Powinieneś teraz mieć coś takiego:
Wygląda to teraz dość skomplikowanie, ale idea jest stosunkowo prosta. Teraz mamy, przed sprawdzeniem, w jakim kierunku slime powinien skakać, najpierw sprawdzamy, czy odległość między slime'm a graczem jest mniejsza niż 15 (metrów).
Jeśli gracz jest bliżej niż 15 metrów, to kontynuujemy i sprawdzamy, w którym kierunku powinniśmy skakać, jak zwykle. Jeśli gracz jest dalej niż 15 metrów, nie kontynuujemy i logika kończy się tam, aż następnym razem slime "pomyśli" ponownie (za 2 sekundy).
Spróbuj zagrać w grę! Jeśli zbliżysz się za bardzo do slime'a, powinien zacząć skakać w twoją stronę, ale jeśli oddalisz się zbyt daleko, powinien przestać się poruszać i czekać, aż znów się zbliżysz.
Nasz slime zaczyna wyglądać dość groźnie, ale wciąż brakuje mu sposobu na zadanie obrażeń graczowi. W następnej części tego samouczka nadamy graczowi pasek zdrowia oraz wdrożymy logikę, aby zadawać obrażenia graczowi.
Część 5: Atakowanie gracza
Jak opisano w sekcji wprowadzenia, wdrożymy ataki slime'a, sprawiając, że slime zrani gracza, gdy się z nim zetknie. Aby rozpocząć wdrażanie sposobu dla slime'a do ataku na gracza, najpierw musimy nadać graczowi trochę zdrowia.
W głównym edytorze wybierz warstwę UI sceny i stwórz nowy obiekt za pomocą przycisku Obiekty specjalne. Stuknij w "Pasek zdrowia", aby stworzyć pasek zdrowia dla naszego gracza.
Ponieważ znajduje się na warstwie UI sceny, jeśli zdecydujemy się rozszerzyć nasz świat i sprawić, aby ekran podążał za graczem, pozostanie w tym samym miejscu na ekranie.
Możesz umieścić go gdziekolwiek, gdzie uważasz, że pasuje na ekranie. Umieściłem go w centrum ekranu w pobliżu dołu.
Gdy skończysz znajdować dobrą lokalizację dla paska zdrowia, możemy zacząć dodawać sposób na usunięcie zdrowia z paska zdrowia. Wróć do głównej warstwy, gdzie jest twój slime i ponownie otwórz jego edytor zachowań.
W ładnym pustym miejscu w zachowaniach slime'a, umieść zachowanie Koliduj znajdujące się w sekcji Obiekt. W jego właściwościach ustaw drugi obiekt na tag "Gracz".
W sekcji zachowania niestandardowe umieść zachowanie Wyślij wiadomość i połącz je z zachowaniem Koliduj. W właściwościach zachowania Wyślij wiadomość ustaw Klucz zdarzenia na "gracz uderzony" i ustaw wartość na -10.
Pamiętaj: Klucze zdarzenia są czułe na wielkość liter! Dla uproszczenia ten samouczek będzie używał małych liter dla kluczy zdarzeń. Możesz wybrać użycie dużych liter, jeśli wolisz, ale pamiętaj, które litery są dużymi literami na później.
Teraz mamy sposób na wykrywanie, kiedy gracz powinien stracić zdrowie. Gdy gracz koliduje z slime'em, zostanie nadana wiadomość dla zdarzenia "gracz uderzony" z wartością -10. Użyjemy -10, aby powiedzieć paskowi zdrowia, aby "dodać" -10 zdrowia, a ponieważ wartość jest ujemna, zostanie odjęte 10 zdrowia.
Wciąż musimy dodać tę logikę do paska zdrowia, więc zróbmy to teraz. Wyjdź z edytora zachowań slime'a, a następnie w głównym edytorze stuknij w warstwę UI sceny, a następnie stuknij w pasek zdrowia. Otwórz edytor zachowań dla paska zdrowia.
W edytorze zachowań paska zdrowia umieść zachowanie Odbierz wiadomość z sekcji niestandardowej. W jego właściwościach ustaw Klucz zdarzenia na "gracz uderzony". (Pamiętaj, że jest czuły na wielkość liter!)
To zachowanie będzie naszym słuchaczem dla wiadomości "gracz uderzony" wysyłanej, kiedy gracz uderza slime'a. Gdy to zachowanie wykryje komunikat nadawany dla "gracz uderzony" gdziekolwiek w grze, wykona się.
Teraz dodaj zachowanie Dodaj do paska zdrowia w sekcji zachowań UI i połącz je z zachowaniem Odbierz wiadomość.
W właściwościach Dodaj do paska zdrowia, przeciągnij wartość wyjściową z Odbierz wiadomość do pola "Wartość do dodania". Ta wartość będzie ujemną wartością -10, którą ustawiliśmy wcześniej w zachowaniu Wyślij wiadomość w slime'ie. Dzięki temu, jeśli zdecydujemy się, aby inne wrogowie zadawali różne ilości obrażeń, wszystko, co musimy zrobić, to zmienić wartość w komunikacie nadawanym na cokolwiek innego, co chcemy, aby pasek zdrowia używał tej wartości zamiast!
Upewnij się, że "Wydarzenie przy pełnym" jest wyłączone, a "Wydarzenie przy pustym" jest włączone. Oznacza to, że gdy pasek zdrowia osiągnie zero zdrowia, wykona się następne zachowanie.
Poniżej sekcji Scena umieść zachowanie Załaduj nakładkę i połącz je z zachowaniem Dodaj do paska zdrowia.
W ustawieniach Załaduj nakładkę, zmień wybraną nakładkę na nakładkę "Game Over", która jest automatycznie tworzona dla ciebie, gdy tworzysz nowy projekt.
Zagraj w grę i wypróbuj! Teraz, gdykolwiek będziesz miał kontakt z slime'em, powinno to odjąć zdrowie z paska zdrowia. Gdy pasek zdrowia osiągnie zero, staje się game over.
Super! Teraz mamy sposób na zadawanie obrażeń graczowi i przegrywania gry.
Coś wydaje się jednak nie tak. Nie dajemy zbyt wielu informacji zwrotnych graczowi, że został uderzony poza odejmowaniem zdrowia z paska zdrowia.
Możemy to naprawić, przepychając gracza i slime'a od siebie, aby wyraźnie pokazać, że mieli kontakt, a także zapobiegając zadawaniu durzych obrażeń przez kolizję z slime'em zbyt szybko.
Przejdź do edytora zachowań slime'a (możesz najpierw wybrać główną warstwę) i umieść zachowanie Propeluj obiekt w sekcji Fizyka. Połącz je z zachowaniem Wyślij wiadomość, które mieliśmy wcześniej i otwórz jego właściwości.
W jego właściwościach zmień drugi obiekt na tag "Gracz", otwierając zakładki i wybierając "Gracz". Zmień wartość siły na 200, a mnożnik obiektu A na 0.25 oraz na mnożnik B na 1.
Teraz, gdy gracz koliduje z slime'em, zostanie odrzucony od slime'a z siłą 200 (1 × 200 siły) oraz slime zostanie odrzucony od gracza z siłą 50 (0.25 × 200 siły).
Nasza gra zaczyna wyglądać całkiem dobrze! Jedynym problemem jest to, że mamy nieodwracalnego slime'a, a nasz gracz nie ma sposobu, aby go pokonać. W następnej części wdrożymy sposób dla naszego gracza do odwetu.
Część 6: Pokonanie slime'a
Aby pozwolić naszemu graczowi zaatakować slime'a, skacząc na niego, będziemy musieli zmienić, jak obsługujemy kolizję, polecając slime'owi ignorować dół gracza (stopy gracza) podczas zadawania obrażeń.
Otwórz edytor zachowań slime'a i stuknij w zachowanie Koliduj, które stworzyliśmy w poprzedniej części samouczka. Wyłącz opcję "Na dole", co spowoduje zignorowanie kolizji, jeśli slime koliduje z dolną częścią kolizyjnej skrzynki gracza.
Teraz, nasz slime nie zrani gracza, jeśli gracz skoczy na niego. Chcemy natomiast wykonać inną logikę, gdy to się stanie.
Z wybranym zdarzeniem Koliduj, sklonuj je i odwróć wszystkie opcje w nowym zdarzeniu Koliduj, aby tylko opcja "Na dole" była włączona.
To stanie się naszym punktem wejścia, gdy gracz skoczy na slime'a.
Następnie umieść i połącz zachowanie Zniszczyć obiekt z sekcji Obiekt. Powinno być już ustawione na zniszczenie naszego obiektu slime domyślnie.
Teraz, gdy gramy w naszą grę, skakanie na slime'a zniszczy go. Ale ponownie, jak to miało miejsce przy uderzeniu slime'a wcześniej, nie czuje się to zbyt satysfakcjonująco.
Jak zrobiliśmy to w poprzedniej części samouczka, dodajmy kolejne Propeluj obiētu. Sklonuj starsze zachowanie Propeluj obiekt i połącz je z zachowaniem Zniszczyć obiekt. Jego właściwości z poprzedniego zachowania Propeluj obiekt mogą pozostać takie same.
Teraz, gdy gramy w grę, otrzymujemy przyjemnego odbicia, skacząc na slime'a.
Podsumowanie i ćwiczenia
I to właściwie wszystko! Sprawdziliśmy wszystkie punkty z sekcji wprowadzenia:
- Zamiast chodzić, slime będzie skakał w lewo lub w prawo, aby się poruszać. Sprawdź!
- Slime będzie skakał w kierunku gracza. Sprawdź!
- Jeśli gracz jest zbyt daleko, slime nie będzie się poruszać (bezczynny). Sprawdź!
- Slime odejmie zdrowie gracza przy kontakcie. Sprawdź!
- Slime zostaje pokonany, jeśli gracz skoczy na niego. Sprawdź!
Jeśli dotarłeś tak daleko, powinieneś teraz mieć przyzwoite zrozumienie, jak możesz nadać swoim wrogom pewną inteligencję i pozwolić im myśleć oraz podejmować decyzje samodzielnie. Świetna robota!
Jednak zawsze można zrobić więcej. Jako ćwiczenie spróbuj wykonać następujące rzeczy samodzielnie:
- Odtwórz animację "uderzony/martwy" slime'a, gdy gracz skacze na niego.
- Odtwórz animację "uderzenie" gracza, gdy slime atakuje gracza.
- Dodaj trochę losowości do tego, jak daleko slime będzie skakał za każdym razem.
Ukończony plik projektu dla tego samouczka można znaleźć tutaj: Pobierz projekt samouczka

