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
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.
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.