Gra Billard, poruszanie kijem bilardowym

Odpowiedz Nowy wątek
2018-11-24 17:03
0

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.

Pozostało 580 znaków

2018-11-24 17:50
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.

Pozostało 580 znaków

2018-11-25 16:51
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

Pozostało 580 znaków

2018-11-25 17:26

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

edytowany 2x, ostatnio: Spine, 2018-11-25 17:27
Dzięki bardzo !!! - Spwrtt 2018-11-25 17:37

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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