У меня была эта проблема некоторое время, и было бы здорово, если кто-то может помочь.:)
http://img31.imageshack.us/i/problemsc.jpg/ (иллюстрация проблемы)
Итак, у меня есть этот объект с точкой регистрации посередине внизу.Я хочу, чтобы этот объект следовал за мышью, но оставался в центре экрана во время вращения.Вот что я использовал:
dx = mouseX - this.x ;
dy = mouseY - this.y ;
radians = Math.atan2(dy, dx);
angle= radians * 180/Math.PI;
this.rotation = angle + 90;
this.y = mouseY + this.height;
Проблема с этим кодом в том, что когда вы перемещаете мышь от центра, например, угол не равен 90 градусам, между курсором мыши иобъект.Проследив, я обнаружил, что она следует позиции y мыши, как и должна, но вращая объект, его высота и ширина изменяются, поэтому объект не указывает прямо на курсор.
IsЕсть ли способ компенсировать это смещение?Или, может быть, другой подход?Заранее спасибо.
ОБНОВЛЕНИЕ: Хорошо, похоже, я не объяснил проблему правильно, извините, английский не мой родной язык.Мне нужно, чтобы объект следовал за курсором, но передний конец объекта должен находиться в той же позиции, что и курсор, а задний конец объекта должен быть в середине экрана, просто по центральной оси x.Поэтому, когда вы перемещаете мышь, передний конец объекта всегда будет указывать и находиться в положении мыши.Задняя часть должна оставаться в том же положении, но повернута.