Przesuwająca się mapa - koncepcja

0

Siemanko,

stoję przed rozpoczęciem programowania planszy do mojej gry. W założeniu ma być to ścieżka, która się przesuwa z góry do dołu a gracz steruje klawiszami aby nie wypaść z toru. I w tym momencie mam problem ponieważ nie do końca wiem jak to zrealizować. Stąd moje pytania:

  1. Jak utworzyć efekt przesuwającej się mapy?
  2. W jaki sposób wykonywać kolizje w przypadku przesuwającej sie mapy? Wiem, że można to zrobić na macierzy, ale w tym przypadku musiałaby by być ona ogromna. Słyszałem o możliwości wykonywania kolizji w oparciu o kolory, ale w jak w takim przypadku pobierać kolory z mapy?

Proszę o podpowiedzi dotyczące realizacji, ponieważ ogólny pomysł i koncepcje mam, ale na razie nie wiem jak to przełożyć na praktykę.

Pozdrawiam

2

Ad. 1: IMO logicznie lepszym rozwiązaniem będzie przesuwanie kamery względem przesunięcia elementu, którym steruje gracz. Zgodnie z pozycją kamery odrysowany zostanie dany fragment mapy wraz z obiektami, które się na nim znajdują.
Ad. 2: Wykorzystaj do tego algebrę, czyli wyliczaj długości wektorów pozycji elementów do pozycji gracza, coś na rodzaj elementPosition - playerPosition. W przypadku długości wektora nieprzekraczającej sumy promieni obu obiektów - masz kolizję. Tutaj musisz dodatkowo pamiętać o sposobie w jakim rysowane są obiekty przez dane API. Jedne API "punktem zaczepienia" uznają lewy górny wierzchołek elementu, inne natomiast wykorzystują do tego jego środek.

Pozycje wszystkich elementów na mapie są aktualizowane na bieżąco. Dlatego też detekcja kolizji między graczem a resztą elementów nie ma żadnego powiązania z poruszaniem się kamery (powinno się obejść bez lerp'a.).

1 użytkowników online, w tym zalogowanych: 0, gości: 1