Czy są jakieś konwencje i / lub najbardziej znane metody dotyczące układów współrzędnych na mapach gier? Czy punkt początkowy jest zwykle umieszczony na środku mapy? A może mieszka w kącie, a mapa jest zbudowana w jednym oktanie przestrzeni 3D?
Czy są jakieś konwencje i / lub najbardziej znane metody dotyczące układów współrzędnych na mapach gier? Czy punkt początkowy jest zwykle umieszczony na środku mapy? A może mieszka w kącie, a mapa jest zbudowana w jednym oktanie przestrzeni 3D?
Odpowiedzi:
Większość gier umieszcza pochodzenie mapy w rogu. Głównym tego powodem jest to, że mapy warstw są często wewnętrznie przechowywane w tablicach dwuwymiarowych, a większość języków programowania nie pozwala na ujemne indeksy tablic. Jest wiele dyskusji na temat tego, który róg powinien być początkiem, ale nie uważam żadnego z argumentów za szczególnie mocny. W końcu to tylko osobiste preferencje. Polecam po prostu użyć tego samego rogu, którego używa graficzny interfejs API, aby zminimalizować ból głowy.
Wyjątkami są często gry, które pozwalają na mapy, które rosną nieskończenie we wszystkich kierunkach. To nie działa poprawnie bez ujemnych indeksów, więc prosta tablica 2d nie wchodzi w rachubę. Będziesz musiał przechowywać dane mapy w bardziej złożonej strukturze danych. W takiej sytuacji zazwyczaj sensowne jest umieszczenie początku w pozycji początkowej.
Teoretycznie lokalizacja pochodzenia nie ma znaczenia. Wszystkie operacje matematyczne, które wykonujesz, gdy mapa jest renderowana lub gdy obiekty poruszają się na mapie, działają dobrze bez względu na to, skąd faktycznie pochodzi.
Jednak w praktyce istnieje jeden powód, dla którego możesz chcieć, aby środek mapy był początkiem - a jest to ograniczona precyzja wartości zmiennoprzecinkowych.
Przy liczbach zmiennoprzecinkowych im dalej od zera, tym mniejsza dokładność w mniejszych cyfrach.
Pracując nad grą w otwartym świecie, która miała bardzo dużą mapę, napotkaliśmy problemy, w których fizyka i inne rzeczy zaczęłyby się załamywać w miarę oddalania się od źródła.
Rozwiązaniem było wykonanie pewnych sztuczek, w których źródło zawsze znajdowało się bardzo blisko gracza, poprzez inteligentne teleportowanie przedmiotów (gracza, kafelków mapy, kamery itp.), Aby nie oddalały się zbytnio od źródła.
To naprawdę nie ma znaczenia. To, co niektóre osoby zmieniają w układzie współrzędnych, to często oś y. Zamiast mieć (0,0) w lewym górnym rogu, wolą mieć go w lewym dolnym rogu dla łatwiejszej fizyki.