AWT - metody waitForClick vs mouseClicked

AWT - metody waitForClick vs mouseClicked
ŁA
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 10 lat
  • Postów:23
0

Witam,
Chciałem stworzyć prostą grę, zauważyłem dziwne zachowanie, które może ktoś potrafiłby wytłumaczyć.
Po kliknięciu myszki chcę, żeby piłka "przesunęła" się na określoną długość. Robi to metoda moveBall() przedstawiona poniżej:

Kopiuj
private void moveBall(){
    for(int i=0; i<10;i++){    
                ball.move(5, 5);
                pause(50);
    }
}

Gdy korzystam z

Kopiuj
MouseClicked(MouseEvent e){
moveBall();
}

Nie wyświetla się animacja, tylko, (w tym przypadku po odczekaniu 10*50 milisekund) wyświetla się stan końcowy piłki

Natomiast gdy w metodzie Run() wykorzystuję sekwencję:

Kopiuj
        waitForClick();
        moveBall();

widać ruch piłki

Przyznam się, że wolałbym wykorzystać metodę (a raczej klasę?) MouseClicked(MouseEvent e), ponieważ wygląda to "bardziej obiektowo" i zapewnia w moim przekonaniu większą przejrzystość kodu. Może ktoś zna przyczynę, dlaczego zachowuje się ta funkcja w ten sposób?
Pozdrawiam

edytowany 1x, ostatnio: łazanki
HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0

A tak na szybko - jakbyś dodał repaint() w moveBall? (mogę się mylić i nie wytłumaczę dlaczego tak się dzieje)

rnestk
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 10 lat
  • Postów:26
0

A możesz zamieścić cały kod ? Trochę mało danych...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.