Podczas rozgrywki bitwa na współrzędne wykorzystuje trzy przestrzenie współrzędnych:
Przestrzeń świata: przestrzeń współrzędnych używana do umieszczania obiektów w świecie gry za pomocą funkcji API Verse.
Przestrzeń planszy: przestrzeń współrzędnych używana do rozmieszczania obiektów na planszach graczy.
Przestrzeń miniplanszy: przestrzeń współrzędnych używany do wyświetlania graczom widoku ich własnej planszy.
Razem te przestrzenie współrzędnych dają graczowi dokładny wgląd w bieżący stan gry i wydajność rozgrywki.
Zaprojektowanie kompleksowego zarządzania przestrzeniami współrzędnych wymaga planu i zastanowienia. Większość pracy dotyczy przeprowadzania konwersji między przestrzeniami współrzędnych, aby można było w wiarygodny sposób mapować wektory w przestrzeni świata na współrzędne na planszy i na współrzędne na miniplanszy oraz z powrotem.
Przestrzeń planszy jest przedstawiana jako plansza na środku powyższej ilustracji (1), a przestrzeń miniplanszy jest przedstawiana jako miniplansza w lewym górnym rogu powyższej ilustracji (2).
Przestrzeń świata jest to trwały układ współrzędnych będący podstawą działania UEFN i funkcji API Verse. UEFN wykorzystuje trójwymiarowy układ współrzędnych Left-Up-Forward (LUF), tj. układ W lewo-W górę-Do przodu.
Aby uzyskać więcej informacji o tym układzie współrzędnych, patrz: Układ współrzędnych Left-Up-Forward.
Przestrzenie współrzędnych
Każda przestrzeń współrzędnych w tej przygodzie wymaga konwersji lokalizacji na inne powierzchnie i typy, aby prawidłowo rozmieszczać obiekty gry w świecie. Poniżej znajdują się opisy poszczególnych przestrzeni. Szczegółowo omówiono je w dalszej części tego samouczka.
Przestrzeń świata
Przestrzeń świata jest przestrzenią domyślną używaną przez UEFN i Verse do umieszczania obiektów w świecie gry. W tym przykładzie gry wykorzystano głównie obiekty creative_device. W rezultacie klasą Verse używaną do przedstawiania lokalizacji urządzeń w świecie gry jest klasa transform z modułu /UnrealEngine.com/Temporary/SpatialMath z definicją:
transform<public> := struct<concrete><computes>:
Scale<public>:vector3
Rotation<public>:rotation
Translation<public>:vector3
gdzie vector3 jest zdefiniowany jako:
vector3<public> := struct<concrete><computes><persistable>:
X<public>:float
Y<public>:float
Z<public>:float
Klasa transform definiuje, gdzie znajduje się obiekt (Translation, tj. translacja), w którym kierunku jest zwrócony (Rotation, tj. obrót) i jaką ma wielkość (Scale, tj. skala).
Każdy obiekt pochodzący z klasy creative_object ma dostęp do tych funkcji API Verse:
GetTransform: uzyskuje aktualne dane przekształcenia obiektu.TeleportTo: Przenosi obiekt do wejściowego miejsca docelowego bez animacji.MoveTo: animuje ruch do wejściowego miejsca docelowego.
Definicja klasy transform wraz z tymi funkcjami API zapewnia wszystko, czego potrzebujesz, aby zdefiniować położenie obiektu w świecie gry i umieścić go w tym położeniu.
Przestrzeń planszy
Przestrzeń planszy jest przestrzenią używaną na potrzeby głównej planszy w bitwie na współrzędne i jest identyfikowana przez objaśnienie (1) na powyższej ilustracji. Ta przestrzeń służy do wyznaczania przestrzeni lub pól na planszy względem środka planszy.
Przestrzeń miniplanszy
Miniplansza służy do pokazywania graczom widoku ich własnej planszy. Znaczniki trafienia wskazują, że pole planszy zostało zaatakowane i wrogowi udało się zniszczyć pionka na tym polu. Znaczniki chybienia wskazują, że pole planszy zostało zaatakowane, ale wróg w nic nie trafił. Sama miniplansza jest siatką statyczną umieszczaną względem kamery rozgrywki, dzięki czemu pojawia się jako część interfejsu użytkownika gry.
Kroki procedury budowania
Aby użyć tych trzech przestrzeni współrzędnych razem w celu utworzenia efektywnej rozgrywki:
Zdefiniuj reprezentację pola w przestrzeni planszy.
Zdefiniuj granice przestrzeni planszy.
Zdefiniuj położenie przestrzeni planszy w przestrzeni świata.
Wykonaj konwersję między przestrzeniami planszy i świata.
Umieść pionka na planszy w określonej lokalizacji.
Uzyskaj pionka z planszy.
Usuń pionka z planszy.
Umieść wszystkie pionki w losowych miejscach na planszy.
Zdefiniuj reprezentację pola w przestrzeni miniplanszy.
Zdefiniuj granice przestrzeni miniplanszy.
Zdefiniuj położenie przestrzeni miniplanszy w przestrzeni świata.
Umieść znacznik na miniplanszy.
Wykonaj konwersję między przestrzeniami miniplanszy, planszy i świata.
Zdefiniuj ruchy w grze.
Skonstruuj pętlę gry.
Określ, kiedy jest spełniony warunek zwycięstwa.