Nieskończona, przesuwająca się mapa

0

Witam,
Jestem w trakcie tworzenia gry z mapą "przesuwającą" się. Wykorzystuje metode tworzenia mapy przez pobieranie i rozpoznawania kolorów pixeli z narysowanego obrazu w paincie(BufferedImage). Mapa oczywiście narysowana w pańcie jest skończona. Moim problemem jest zapętlenie mapy. Jak można zrobić by mapa(narysowana w pacie) zblizajac sie do konca, wracala do początku?

Tutaj taki podgląd (prowadzimy biały samochodzik omijając wszystkie inne pozostałe. Niestety mapa ma swoj koniec i zatrzymujemy sie wtedy w miejscu.):
554c28cf74.png

Na początku funkcji głównej ustawiam kamere na 0,0 i ładuje mapę, potem kamera się przesuwa wraz z ruchem samochodziku.
cam = new Camera(0, 0);
loadImageLevel(level);

Proszę o pomoc, lub pomysły jak to rozwiazać :)

Pozdrawiam,
Filemon.

1

Rysuj kilka map?
Ja bym stworzył dwie (zakładając, że mapa ma szerokość równą co najmniej połowy szerokości ekranu) i rysował jedna obok drugiej na przemian - tj.gdy jedna wyjdzie za bardzo w lewo i zniknie, przesuwam ją na prawo za drugą i tak cały czas.

1

Ja ostatnio robiłem taką mapę u siebie i zrobiłem tak, że rysowały się dwie mapy jedna na ekranie i druga poza ekranem. Gdy ta pierwsza osiągnęła koniec ekranu to wskakiwała tam gdzie zaczynała ta druga i tak w nieskończoność (no do końca gry).

1

rysowanie tła podziel na dwa razy

od lewej najpierw narysuj część od fragmentu x tekstury do końca a potem od początku do fragmentu x

pseudokod zakładając że rozmiar tła jest taki sam jak obszar w którym rysujemy:

offset = x % szerokoscTla;

draw(0, 0, szerokoscTla - offset, wysokosc, // współrzedne docelowe na ekranie
  offset, 0, szerokoscTla, wysokosc); // współrzędne na teksturze

draw(offset, 0, szerokosc, wysokosc,
  0, 0, offset, wysokosc);
0

Dzięki Panowie, dobry pomysł. Już się zabieram za realizacje :)

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