Просмотр полной версии : вращение клипа в зависимости от курсора
Mnilionic
04.09.2007, 18:31
на сцене есть кнопка btn со стрелкой (аля компас)
эта стрелка следит за движением мышки
function circ(mc) {
// получаем длины катетов треугольника
var x = _xmouse-mc._x;
var y = _ymouse-mc._y;
// считаем гипотенузу
var r = Math.sqrt((x*x)+(y*y));
// через арксинус получаем нужный угол
var rotation = Math.round((Math.asin(x/r))*180/Math.PI);
// это вышло методом подбора что работало
if (y>0) rotation = 180-rotation
mc._rotation = rotation;
trace(rotation);
}
в итоге все замечательно крутится. Единственная проблема - угол принимает значения от -90 до 270 градусов. А мне нужно от 0 до 360
Как наладить?
Спасибо.
Molecula
04.09.2007, 18:41
Странно - но твой код крутит мой клип от 0 до 360 градусов.
Так что всё нормально.
Вот как я сделал:
function Rotate_Shit(){
// получаем длины катетов треугольника
var x = _xmouse-mc._x;
var y = _ymouse-mc._y;
// считаем гипотенузу
var r = Math.sqrt((x*x)+(y*y));
// через арксинус получаем нужный угол
var rotation = Math.round((Math.asin(x/r))*180/Math.PI);
// это вышло методом подбора что работало
if (y>0) rotation = 180-rotation
mc._rotation = rotation;
trace(rotation);
}
onEnterFrame=Rotate_Shit;
сорри за названия
Mnilionic
04.09.2007, 18:53
а у меня трасируются от -90 до 270
запускаю так:
btn.onPress = function() {
onMouseMove = function () {
circ(btn);
};
};
btn.onRelease = btn.onReleaseOutside=function () {
delete (onMouseMove);
};
А что мешает добавить Пи/2 к углу в ротации?
chingachgoog
05.09.2007, 10:17
onMouseMove=function(){
мой_мувик_стрелка._rotation=Math.atan2(_ymouse,_xmouse)*180/Math.PI
}
Этот код должен быть помещен в родителя мой_мувик_стрелка, если сделать родителем _root, то система отсчета координат будет левый верхний угол и соответственно вращаться стрелка будет только на 15 минут
Mnilionic
05.09.2007, 14:08
chingachgoog, спасибо за формулу,
но, в вашем варианте у меня стрелка отстаёт от мышки на 90 град.
то есть если мышка справа от клипа, то стрелка смотрит вверх.
CorC, то что угол поворота будет не соответствовать положению мышки, как и в примере chingachgoog
chingachgoog
05.09.2007, 14:17
chingachgoog, спасибо за формулу,
но, в вашем варианте у меня стрелка отстаёт от мышки на 90 град.
то есть если мышка справа от клипа, то стрелка смотрит вверх.
Это зависит от того как стрелка нарисована. (т.е. положения исходного клипа). Всего делов - перерисовать мувик-стрелку (положить его горизонтально), либо добавить в формулу смещение на 90 градусов.
Mnilionic
05.09.2007, 14:32
тоесть при этой формуле нулевой градус не вверху, а как в школе - справа?
хорошо, щас запробую.
Спасибо
Mnilionic
05.09.2007, 15:01
отлично! работает как положенно. Большое спасибо.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.