2013-12-01 2 views
1

Я разрабатываю одну простую игру, в которой я столкнулся с одной небольшой, но важной проблемой. Я реализовал абсолютное вращение в своей логике.Проблема с вращением формы - Java2d

Когда я начинаю вращать объект, когда объект не имеет никакого вращения, он отлично работает, и я могу вращаться как в любом направлении без каких-либо проблем, как показано в следующей ссылке.

Initial Rotation Video

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

Rotation issue when shape has some rotation

Я думаю, что видео показывает все, по-прежнему, если у вас есть какие-либо вопросы, пожалуйста, спрашивайте.

Я думаю, проблема заключается в том, что должно быть относительное вращение в направлении указателя мыши из любого круга.

Теперь о моей логике,

в мыши пресс-конференции я только что проверил

нажатия кнопок мыши

ли выбрана форма на холсте, если да , если один из четырех кругов содержит мышь точка, если да, то initiateRotation

Mouse Drag

Использование векторной математики обновляет движение по точкам мыши,

угла поворота вычисляет в соответствии со следующим способом

Math.atan2(rotationVector.getY(), rotationVector.getX()); 

и применять ротацию на этой форме.

Rotation Vector я получаю от этого класса

Vector Rotation

я назвал выше класса startMotion в прессе мыши и updateMotion в случае мыши перетащить.

Что мне не хватает или что-то не так?

+0

Есть ли причина, по которой вы не нормализировали vectAB, прежде чем возвращать ее? Также вы проверили, что bounds.getCenterX/Y возвращает правильные координаты? Или, может быть, ошибка заключается в методе, который применяет поворот к фигуре. – SpiderPig

ответ

0

Нам нужно увидеть код, который сможет вам помочь. Похоже, вы перезагружаете вращение, когда вы начинаетеRotation, а затем объект быстро вращается на месте, в соответствии с вашим положением мыши при перетаскивании.

+0

у вас полный код для отладки? – Mihir

+0

Ну, полный щелчок мышью и функции перетаскивания, а также методы вращения вещей. Также любой из ваших собственных классов, которые имеют отношение к вашей проблеме. Как формы, если вы не используете стандартные формы Java.Это хорошая идея рассказать нам, что вы используете для своего проекта, иначе у нас нет шансов. Помните, что короткий короткий код может быть добавлен к вашему вопросу, а полные классы и методы могут иметь собственный snipt.org (не забудьте сменить язык с abap на Java) –

Смежные вопросы