Kmicic Temat założony przez niniejszego użytkownika |
Tworzenie 'fog of war' » 2012-10-30 13:10:12 Jeśli chciał bym zrobić system widoczności na mapie kafelkowej tym sposobem
0000000 0001000 0011100 011P110 0011100 0001000 0000000
To w jaki sposób wyświetlano by bitmapy ? Należało by ustawić czarne bitmapy wielkości kafli, i potem je ukrywać jeśli warunek będzie prawdziwy ? |
|
DejaVu |
» 2012-10-30 13:14:07 Utwórz dwie tablice - jedna zawierająca mapę, a druga informację gdzie nie ma być mgły. Drugą tablicę zawsze czyścisz, a następnie modyfikujesz na podstawie obiektów znajdujących się na scenie. Dopiero potem rysujesz mgłę/mapę w zależności od stanu tych dwóch tablic. |
|
Kmicic Temat założony przez niniejszego użytkownika |
» 2012-10-30 13:16:43 Te kwestię rozwiąże, chodzi mi bardziej o problem graficzny. Gra ma możliwość stawania na granicy 2 kafli, wiec mam problem z graficznym wyświetlaniem tego. |
|
DejaVu |
» 2012-10-30 13:17:41 Niestety nie za bardzo rozumiem co masz na myśli :) |
|
Kmicic Temat założony przez niniejszego użytkownika |
» 2012-10-30 13:26:10 Rozrysowałem to tak, kafle są równej wielkości. Obrazek II prezentuję gracza -czerwony kwadrat, który jest ustawiony na równi z kaflem. Kafle naokoło są więc odkrywane (bitmapa z czarnym kwadratem staje się niewidoczna i odsłania warstwę pod spodem). Obrazek I prezentuję sytuację gdy gracz stoi na granicy kilku kafli. Nie mogę jednak odkryć kawałka kafla gdyż muszę odkrywać całość. Jedynym rozwiązaniem było by podzielenie bitmapy z kaflami na mniejsze kaflę co zwiększyło by szczegółowość. http://screenshooter.net/9624324/htcuehn |
|
DejaVu |
» 2012-10-30 13:28:29 Nie musisz dzielić mapy na mniejsze kafle - wystarczy, że zwiększysz gęstość tablicy przechowującej informacje 'gdzie jest mgła, a gdzie jej nie ma' :)
/edit: Innymi słowy, zmniejszasz 'kwadraciki' zasłaniające mapę, a nie te, które rysują mapę.
/edit2: Wówczas na jeden kafel mapy będzie przypadało np. 16 kafli mgły, a więc uzyskasz w miarę gładkie krawędzie mgły. |
|
Kmicic Temat założony przez niniejszego użytkownika |
» 2012-10-30 13:35:13 Czyli do każdego kafla przypisać 16 (umownie) czarnych kafli. A czy to nie będzie bardzo spowalniać pracy programu ? Wiele gier ma dosyć obszerne mapki, i takie ładowanie kilku tysięcy bitmap + parę innych może okazać się kłopotliwe. |
|
DejaVu |
» 2012-10-30 14:00:08 Czemu chcesz ładować kilka tysięcy bitmap? Przecież bitmapę wystarczy raz wczytać i milion razy wykorzystać jak jest taka potrzeba. Poza tym... martwisz się o wydajność na zapas. Najpierw zrób coś, przetestuj, a potem jak będą zastrzeżenia to optymalizuj. Tak na dobrą sprawę szczegółową mgłę można generować tylko i wyłącznie dla obszaru widocznego w danej chwili, a nie dla całej mapy. Mgła dla całej mapy jest potrzebna tylko na minimapie, a ta z kolei nie wymaga ani dużej szczegółowości, ani częstego odświeżania :) |
|
« 1 » 2 |