экземпляр) и обнаружение столкновений должно работать правильно.

даю игру в понг. Тем не менее, в моей игре весла имеют возможность вращаться вокруг своего центра.

Эти весла представлены объектами 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 обратно в обычное аффинное преобразование.

Я уже некоторое время исследую эту проблему, и я нашел пару дискуссий по этой проблеме. Тем не менее, они, кажется, над моей головой, и они, кажется, имеют дело с матричной математикой (и как человек, который никогда не изучал необходимую математику, я совершенно растерялся). Итак, я надеялся, что кто-нибудь сможет найти простое решение или помочь мне пройти необходимую математику.

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос