Java wielowatkowosc w grze

0

Robie moj pierwszy projekt w javie, mianowivie pacmana i prosze o pare wskazowek. Mam juz plansze, pacmana który sie porusza i nie wchodzi na ściany. Mam klase Board, która dziedziczy po JPanel, posiada metoda paint(), klase Map, i klase Player. Mam pytanie, jak użyć wielowątkowości w tej grze? Czy pacman i kazdy duszek maja byc odzielnym watkiem?

0

Ja bym zrobił dokładnie tak, jak mówisz.

0

czyli klasa Player(ktora utozsamiania jest z pacmanem ) ma implementowac interfejs Runnable, podobnie jak klasa Ghost?

0

Moze. A moze dziedziczyc po Thread. Jak wolisz.

0

Jeżeli gra ma mieć kontrolowaną liczbę fps (niekoniecznie stałą), to odrysowywanie stanu gry staje się problemem jeżeli chodzi o wątki. Odrysowywanie nie może zostać ani spowolnione, ani wstrzymane z powodu kolizji dostępu do danych produkowanych przez wątki - przy próbie dostępu do nich przez wątek odrysowujący. Dlatego na czas sięgania po te dane ewentualne kolizje muszą zostać wyeliminowane zanim się pojawią. Jednym ze sposobów jest przechowywanie stanu gry w zmiennych z dostępem atomowym bo synchronizacja może spowodować blokadę, a ta zatrzymanie odrysowywania, co w grze jest niedopuszczalne.
Natomiast stała lub kontrolowana liczba fps jest o tyle ważna, że sterowanie odbywa się w czasie rzeczywistym, a gra nie może sobie zwalniać i przyspieszać wyświetlania tak jak się to czasem dzieje przy rozsynchronizowanych filmach (tu też jest to niepożądane). Dlatego wciąż więle gier ma tylko kilka wątków robiących wiele zadań zamiast mnóstwa wątków robiących niewiele zadań. Wciąż spotyka się też gry, które w ogóle pracują na tylko jednym wątku. Właśnie z powodu problemu, który opisałem.

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