Java wielowatkowosc w grze

Odpowiedz Nowy wątek
2012-05-04 13:46
jagielonia
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?

Pozostało 580 znaków

2012-05-04 13:58
0

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

Pozostało 580 znaków

2012-05-04 14:05
jagielonia
0

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

Pozostało 580 znaków

2012-05-04 14:10
0

Moze. A moze dziedziczyc po Thread. Jak wolisz.

Pozostało 580 znaków

2012-05-05 00:33
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.


Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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