FOG [optymalizacja rysowania mapy]

0

Mam tablicę przechowującą informację o mapce, i tablicę przechowującą informację o mgle w grze.
Tablica z mapką jest rozmiaru 80x80 a z mgłą 160x160 czyli 2 razy większa. Zrobiłem by w pętli zerowało całą tablicę

0000000000
0000000000
0000000000
00000X0000
0000000000
0000000000

Potem na około postaci X przypisywało 1, na podstawie współrzędnych:

0000000000
0000000000
0000111000
00001X1000
0000111000
0000000000

Tym sposobem gdy się poruszam wszystko pięknie działa, i odkrywa pola nowe, zasłania stare itd.
Problem polega na optymalizacji, ponieważ wiadome jest że powinno się sprawdzać tylko pola widoczne a nie ciągle całą mapkę. Tak więc pole widoczne zajmuję 1/4 tablicy czyli 40x40. Tak więc zerując ciągle tym razem tablicę z zakresu 40x40 system mgły działać będzie tylko na 1/4 mapki, a jak się przejdzie trochę dalej to tam już jej nie ma. Tak więc trzeba zrobić by tablica odpowiedzialna za odświeżanie i przypisywanie zajmowała się obszarem widzialnym ale też uwzględniała przesunięcie gracza. Nie wiem jednak jak to uwzględnić. Jak przesuwać te sprawdzenia tak, by przy każdym przesunięciu na 4 strony obszar się zmieniał.

0

Rozważ zamianę flagi Mgla na znacznik czasu odwiedzenia. Wtedy zmieniasz ten znacznik tylko w najbliższym otoczeniu. Zaś mgła czy nie decydujesz tylko przy rysowaniu.

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