экземпляр) и обнаружение столкновений должно работать правильно.
даю игру в понг. Тем не менее, в моей игре весла имеют возможность вращаться вокруг своего центра.
Эти весла представлены объектами rectangle2D. Теперь эти прямоугольники должны ударить по мячу, как только они придут к ним. Мяч представлен объектом circle2D, и когда мяч попадает на весло (это делается с помощью метода пересечения прямоугольников), шар меняет направление. Это прекрасно работает, когда весла не повернуты, но когда они повернуты, метод intersects не работает. Когда я использую это утверждение:
paddle2.intersects(xLocation, yLocation, diameter, diameter)
(Где paddle2 - это имя одного из прямоугольников, а переданные ему параметры представляют координату x, координату y и радиус окружности)
Круг действует так, как если бы прямоугольник не вращался. То есть он будет отражаться от исходного положения прямоугольников.
Вероятно, я должен упомянуть, что я вращаю прямоугольники с помощью аффинных преобразований. Это команда, которую я использую, чтобы сделать прямоугольник повернутым:
g2.rotate(Math.toRadians(angle), xLocation+(width/2), yLocation+(height/2));
(где параметрами являются угол поворота прямоугольника и координаты x и y центра).
Затем я сбрасываю аффинное преобразование моего объекта g2 обратно в обычное аффинное преобразование.
Я уже некоторое время исследую эту проблему, и я нашел пару дискуссий по этой проблеме. Тем не менее, они, кажется, над моей головой, и они, кажется, имеют дело с матричной математикой (и как человек, который никогда не изучал необходимую математику, я совершенно растерялся). Итак, я надеялся, что кто-нибудь сможет найти простое решение или помочь мне пройти необходимую математику.
Спасибо!