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:
private void moveBall(){
for(int i=0; i<10;i++){
ball.move(5, 5);
pause(50);
}
}
Gdy korzystam z
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ę:
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