Licznik ruchów myszką i przeliczanie na jednostki

Licznik ruchów myszką i przeliczanie na jednostki
T9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 55
0

Cześć piszę z takim problemem chce zrobić licznik który co każde 3300 ruchów myszką doda mi jeden metr i tak w koło. Piksele działają bez problemu, ale nie wiem jak zrobić żeby ciągle się to powtarzało, bo teraz owszem działa ale raz. Tak, żeby przebyte już piksele w labelu piksele się nie resetowały?

Kopiuj
 public void mouseMoved(MouseEvent event) {
        licznik++;
        piksele.setText("Odległość pokonana w pikselach = "+licznik);
        if(licznik == 330){
            metery++;
            metry.setText("Odległość w metrach = "+metery);
        }
    }
spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć piszę z takim problemem chce zrobić licznik który co każde 3300 ruchów myszką

doda mi jeden metr i tak w koło

Kopiuj
if((licznik % 3300) == 0) { 
    /* baw sie dobrze */ 
}
  • warto byłoby przy liczeniu metrów patrzeć nie na ilość ruchów, lecz przebytych pixeli (warto byłoby wtedy też uwzględnić wielkość monitora, przeskalować to i takie tam).
T9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 55
0

Jeden ruch jest tu równy 1 piksel więc myślę, że samo się już to robi. Chyba, że się mylę. Zanim przeczytałem post wpadłem na coś takiego:

Kopiuj
 public void mouseMoved(MouseEvent event) {
        licznik++;
        pomocnik++;
        piksele.setText("Odległość pokonana w pikselach = "+licznik);
        if(pomocnik == 330){
            pomocnik =0;
            metery++;
            metry.setText("Odległość w metrach = "+metery);
        }
    }

Dość łopatologiczne ale działa. Możesz mi wytłumaczyć ten zapis który Ty użyłeś ? Dziękuje za pomoc.

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0

Zapis którego użyłem to reszta z dzielenia (modulo), matematyczny koncept ;P
i nie, nie robi się to co 1 pixel. Policz sobie różnicę pozycji, sam zobaczysz ;)

T9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 55
0

Możliwe, ale nie jest to do arcyważnych obliczeń a do bajeru więc sobie daruje :D Mam jeszcze takie pytanie czy mój zapis jest jakiś poważnie niewłaściwy względem Twojego?

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0

Realizuje to samo, tylko chyba o innych wartościach mówimy ;) bo zadajesz pytanie z 3300, a w kodzie masz 330

Na przyszłość tylko zapamiętaj, że matematyka nie jest wrogiem programisty - szczególnie jeśli mówimy o tej zapewnionej podstawowymi operatorami.

T9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 55
0

No tak, dla szybszego testu działania :D

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.