SFML C++ Renderowanie tylko widocznej mapy

0

Witam wszystkich!
Jakiś czas temu zacząłem uczyć się biblioteki graficznej SFML i mam pytania.
Otóż tworzę sobie taką prostą gierkę żeby kreatywnie utrwalić dotychczas zdobyta wiedzę i będzie tam mapa kafelkowa. Czyli jeden z najprostszych możliwych projektów. Mam jednak jeden problem mam ustawione coś takiego, że jeśli moja postać zbliży się do krawędzi okna "kamera" przesuwana jest w ten bok. To działa. Ale co zrobić żeby gra renderowała tylko widoczną mapę/teren? Byłoby to chyba mniej pamięciożerne niż jeśli chciałbym od razu wyrenderować cała mapę prawda?

Pozdrawiam
Eluzive

1

rysuj tylko tyle kafelków, ile pomieści Ci ekran

0

Pewnie by sie sprawdzilo, gdyby mapka miala jedynie taki rozmiar jak okienko w ktorym renderuje sie owa mapka ale ta mapa jest wieksza i mozna sie po niej poruszac dzieki klasie View, czyli sterowaniu kamera.

0

klasa View ma metodę GetRect() - po prostu nie rysuj czegoś, co nie styka się z podanym FloatRect'em.
hint: googlnij coś na temat "bounding box"

Jeśli chodzi o renderowanie kafelków mapy, znajdź od jakiego do jakiego kafelka na osi X i Y są w obrębie FloatRect (ustal minimalne i maksymalne)
a potem tylko

for(int x = minx; x<=maxx; x++)
  for(int y = miny; y<=maxy; y++)
    renderujKafelek(x,y);

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