Programowanie obiektwe , poruszanie sie

0

Mam problem odnośnie poruszania sie jakimś obiektem dajmy na to kwadratem w javie , szczegółowo problem przedstawię z załączonym obrazku , nie wiem jak to zaimplementować .Chodzi mi tu o javeFX

0

Musisz w każdej klatce animacji zmieniać pozycję X, Y prostokąta o wektor przemieszczenia prostokąta. Wektor przemieszczenia to wektor kierunkowy razy prędkość obiektu (jednostki/sekundę) razy czas trwania klatki (delta time).

Wektor kierunkowy mając zadany kąt obliczasz sobie formułą:

wektor.x = cos(kąt);
wektor.y = sin(kąt);

Pozycję prostokąta zmieniasz dodając do niej wektor przemieszczenia:

pos.x = pos.x + vp.x;
pos.y = pos.y + vp.y;

Tylko z tego co pokazujesz na rysunku, to nie wiem nawet, czy JavaFX operuje na liczbach zmiennoprzecinkowych i wychodzi na to, że nie mamy tutaj kartezjańskiego układu współrzędnych (dodatni Y idzie w dół). Jeśli jest tak jak piszę, to zawsze możesz przechowywać float/double obiektu do obliczeń, a przy ustawianiu pozycji rysowanego obiektu konwertować te wartości do inta. Normalnie kąt minus 30 stopni ma kierunek w dół ;) Ale jeśli Y+ idzie w dół to zgodnie z rysunkiem możesz wyznaczać kąt +30 stopni i kierunek będzie OK.

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