Cześć.
Ostatnio postanowiłem w ramach relaksu napisać sobie grę.
Prostego Ponga w Javie.
I wszystko fajnie pięknie działa tylko mam małą zagadkę.
Otóż, jakiego mechanizmu powinienem użyć, jeśli mam taką sytuację:
Buduję sobie okienko, rozszerzam JFrame, przeładowuje w nim metodę paint - w tej metodzie wyrysowuję wszystkie elementy.
Jednocześnie mam wątek implementujący Runnable. W nim mam metodę run, która wykonuje się w kółko - przelicza pozycję elementów, wywołuje Thread.sleep() i wywołuje metodę repaint() mojego okna, a ta odrysowuje zmiany na ekranie.
Do okna dodaję dwa listenery - rozszerzam KeyAdapter. Wiadomo po naciśnięciu strzałki w górę, paletka ma przemieścić się w górę, po naciśnięciu w dół ma przemieścić się w dół. Gra na raziejest dwuosobowa, więc drugą paletką sterują klawisze A i Z.
I teraz pytanie: zdarza się w trakcie gry, że któraś z paletek "się zawiesi" czyli naciskam A a Paletka stoi w miejscu.
Podejrzewam, że coś namieszałem z wątkiem.
Jeśli ktoś pisłą ponga, czy coś podobnego, to proszę o radę, czy nie powinienem użyć np. SwingWorkera.
Podejrzewam też sam listener, może przyciskając klawisz A przepełniam bufora klawiatury i dlatego zamiera?
Jeśli tak, to jak się przed tym bronić?
Dodam, że przeciążyłem metody keyPressed i keyReleased.
Proszę o rady.
Pozdrawiam.