Podsumowanie

Dotychczas zaimplementowaliśmy reakcję postaci na zderzenie z przeszkodą lub podłogą – upada, a gracz traci nad nią panowanie. Uzupełnieniem tej mechaniki jest rozwiązanie, w którym chwilę po porażce postać pojawia się ponownie na początku toru. Aby osiągnąć taki efekt, po kolizji z przeszkodą będziemy usuwać obiekt bohatera i tworzyć nowy, który ponownie pojawi się w miejscu startu gry.

Odrodzenie postaci

Tworzenie rozwiązania odpowiedzialnego za odrodzenie postaci rozpoczynamy od dodania w blueprincie bohatera funkcji Add Custom Event i nadania jej nazwy, np. odrodzenie.

W kolejnym kroku łączymy ją z funkcją Spawn Actor from Class, służącą do ponownego utworzenia instancji klasy typu Actorklasa nadrzędna ActorActor. Wymaga ona przekazania do niej klasy, którą ma umieścić w grze, w tym wypadku będzie to funkcja GetPlayer Character. Potrzebujemy jednak dodatkowej funkcji Get Class, która skopiuje z obiektu postaci klasę i przekaże ją funkcji Spawn Actor from Class.

Następnie dodajemy komponent Make Transform. Posłuży on do sprecyzowania miejsca, w którym ma pojawić się postać. Najprostszym sposobem jest przepisanie współrzędnych z obiektu PlayerStart.

Aby oddać graczowi kontrolę nad obiektem, używamy funkcji Possess, którą łączymy z funkcją Spawn Actor from Class. Łączymy ją również z funkcją Get Player Controller. Dodatkowo uwzględniamy funkcję Destroy Actor, której zadaniem jest usunięcie postaci po kolizji z przeszkodą.

RDOxRHMBgegdn
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Zniknięcie postaci

Chcemy, aby postać znikała kilka sekund po uderzeniu w przeszkodę. Wracamy do opisanego w e‑materiale Tworzenie przeszkód – Unreal Engine, etap VIIP4Rc73RqCTworzenie przeszkód – Unreal Engine, etap VII rozwiązania odpowiedzialnego za reakcję postaci na kolizję z przeszkodą. Uwzględnioną w nim funkcję Set Physics Blend Weight łączymy z komponentem Delay, który spowoduje opóźnienie kolejnych wydarzeń o określony czas (odpowiednią wartość ustawiamy w sekcji Duration). Na koniec łączymy ten komponent ze stworzoną we wcześniejszych krokach funkcją odpowiedzialną za odrodzenie postaci.

Komunikat o wygranej

Stworzyliśmy już rozwiązanie, które wykona się w sytuacji, gdy zajdzie negatywny scenariusz. Kolejnym krokiem jest zaprojektowanie tego, co wydarzy się w sytuacji, gdy gracz podoła wszystkim przeszkodom i dotrze do końca gry. Stwórzmy ekran z komunikatem o wygranej.

Rozpoczynamy od utworzenia w sekcji Content browser nowego obiektu, z menu, które rozwinie się po kliknięciu prawego przycisku, wybieramy opcję User Interface i następnie Widget Blueprint. W pojawiającym się oknie klikamy User Widget. Zaznaczamy obiekt i przechodzimy do jego okna edytora. W sekcji Palette wybieramy narzędzie Canvas Panel. Za jego pomocą umieszczamy na środku obiektu płótno. Następnie w tej samej sekcji wyszukujemy narzędzie Text. Przeciągamy je na środek płótna.

Edycja tekstu

W obszarze Details w sekcji Content dodajemy tekst. Możemy również edytować go na wiele sposobów. W sekcji Font zmieniamy wygląd liter – typ fontu, rozmiar, pochylenie, pogrubienie itd. W sekcji Anchors możemy ustawić położenie komunikatu na stronie.

RqDzueCkwE8Vr
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Ustalenie, że gracz wygrał

Ostatnim krokiem jest ustalenie warunku, po którym ma wyświetlić się komunikat o wygranej. Gracz wygrywa, gdy znajdzie się na ostatniej platformie, potrzebujemy więc sposobu na sprawdzenie, czy tam dotarł. Po raz kolejny wykorzystamy tu komponent odpowiedzialny za wykrywanie kolizji.

R1eYOc6PuSmvy
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Nauczysz się

W ostatniej części serii o tworzeniu gier w Unreal Engine poprawisz kilka funkcjonalności, a następnie wyeksportujesz grę tak, aby można ją było przekazać graczom.

Słownik

klasa nadrzędna Actor
klasa nadrzędna Actor

jedna z dostępnych w Unreal Engine klas nadrzędnych określająca obiekt, który można umieścić w świecie gry

silnik gry komputerowej
silnik gry komputerowej

zintegrowane środowisko programistyczne stworzone dla osób projektujących gry komputerowe