Witam, od jakiegoś czasu próbuje rozkminić jak zrobić tę grę. Udało mi się stworzyć kolizje okręgów, jednak teraz chce stworzyć kij i zaczynają się problemy. Na poczatku probowalem najprościej jak się da czyli narysować zwykly prostokąt tyle ze jego parametry to tylko (x, y, width, height), a więc nie będę mogł go ustawiać pod różnymi kątami. Dało by radę to zrobić na zwykłej lini, ale z kolei nie mogę ustawić jej grubości. Tak więc może da się jakoś narysować zdjęcie, a następnie obracać je w zależności od położenia kursora. Tyle, że muszę miec jakas funkcje rysującą obrazek, w którym mogę zainicjować dwa skrajne końce zdjęcia. Wstawiam rysunek, mojego zamysłu. Jesli ktos juz robil takową grę i wie jak to zrobić, może i prościej to proszę o jakieś wskazówki.
0
1
Musisz mieć funkcję, która rysuje obrazek/obiekt obrócony o kąt. Nie wiem czego tam używasz w Javie, ale to praktycznie standard.
Aby obliczyć kąt obrotu kija, używasz funkcji atan2, podając różnicę pozycji środka kuli bilardowej i kursora myszy.
0
Jestem na dobrej drodze.
Kij chodzi po prawidłowej orbicie ale tylko jak kąt zmieniam przyciskami( 1- dodaj kąt, 2- odejmij)
Jak probuje to zrobic na MouseMotionListener to kąt nie zmienia się tak jak powinien oto kod, może zauwazysz jakis błąd:
public void mouseDragged(MouseEvent e) {
double mx = e.getX();
double my = e.getY();
angle = Math.atan2(Vec1.Cy - my, Vec1.Cx - mx);
System.out.println(angle);
}
gdzie Cy i Cx to srodki okregu
1
atan2
zwraca kąt w radianach. Aby otrzymać kąt w stopniach, musisz wynik tej funkcji pomnożyć przez (360.0f / (Math.PI * 2.0f))