Przeczytaj
Podsumowanie
Utrudnienia w grze
W serii dotyczącej projektowania gier w Unreal Engine tworzymy grę zręcznościową. Źródłem satysfakcji gracza w produkcjach tego gatunku jest pokonywanie przeszkód. Aby mierzenie się z nimi dawało przyjemność, muszą stanowić wyzwanie. Dlatego też projektując grę, musimy postawić nacisk na zróżnicowanie przeszkód pod kątem ich rodzaju i stopnia trudności.

Zwiększenie masy obiektów
Jednym z utrudnień w grze mogą być przedmioty ustawione na torze. Gracz musi je przesunąć, jeśli chce iść dalej. Aby sprawiało to trudność, można zwiększyć masę przeszkody. W obszarze Details zaznaczamy nazwę obiektu, odnajdujemy sekcję Physics, a w niej pole Mass(kg) i wpisujemy odpowiednią wartość.
Konsekwencje upadku
Innym utrudnieniem może być utrata życia po upadku na podłogę. Efekt ten uzyskamy, dodając kolizję do podłogi. W tym celu tworzymy nowy obiekt o typie ActorActor, któremu nadajemy komponent kolizji (w sekcji Components dodajemy komponent Box Collision). Stosujemy tu rozwiązania znane z e‑materiału Tworzenie przeszkód – Unreal Engine, etap VIITworzenie przeszkód – Unreal Engine, etap VII, tak aby po kolizji z podłogą gracz tracił kontrolę nad postacią. Musimy jednak pamiętać o odpowiednim dopasowaniu rozmiaru pudełka kolizji.
Ruchome przeszkody
Możemy zwiększyć poziom trudności rozgrywki poprzez spowodowanie, że przeszkody będą się poruszać, np. kręcąc w koło. W tym celu otwieramy blueprint przeszkody i wykonujemy następujące czynności:
Tworzymy funkcję
Event Tick, która uruchamia się w każdej klatce programu, przyjmuje ona parametrDelta Seconds, czyli odstęp czasu między klatkami.Łączymy funkcję
Event Tickz funkcjąAdd Actor Local Rotation, która umożliwia obracanie przeszkód. Przyjmuje ona parametrDelta Rotation, który ma przypisane trzy wartości: X, Y, Z.Aby uniknąć sytuacji, w której szybkość obracania się przeszkody zależy od szybkości komputera, do parametru
Delta RotationfunkcjiAdd Actor Local Rotationpodłączamy odpowiedzialną za rotację funkcjęMake Rotator, którą łączymy z funkcjąEvent Tick, używając funkcjiMultiplydo pomnożenia wartościDelta Seconds. Łączymy także funkcjeEven Tickz funkcjąAdd Actor Local Rotation.

Aby móc decydować o prędkości każdej z przeszkód osobno, tworzymy nową zmienną typu Float. Aby można było ją modyfikować w oknie edytora, w blueprincie zaznaczamy ikonę oka. Chcąc zmienić szybkość obrotu przeszkody, zaznaczamy jej nazwę w sekcji Details, następnie odnajdujemy nazwę zmiennej odpowiedzialnej za prędkość i modyfikujemy jej wartość. Jeśli chcemy, by przeszkoda była nieruchoma, nadajemy jej wartość 0.
W kolejnych częściach serii zaimplementujesz sekwencję zdarzeń, które muszą zajść po tym, jak bohater straci życie. Zaplanujesz także warunki zwycięstwa w grze. W ostatnim kroku poprawisz kilka funkcjonalności, a następnie wyeksportujesz grę tak, aby można ją było przekazać graczom.
Słownik
ActorActorjedna z dostępnych w Unreal Engine klas nadrzędnych określająca obiekt, który można umieścić w świecie gry
zintegrowane środowisko programistyczne stworzone dla osób projektujących gry komputerowe