PDA

Просмотр полной версии : _rotation после 180 градусов


Charly84
22.04.2007, 17:19
Здравствуйте, форумцы ;)
К вам вопрос....

Есть стрелка.. .которую мне надо крутить :)
прикрепляю код, как я ее кручу..

Но есть небольшая проблема. Если up_gr < 180, тогда код работает и все в ажуре.. стрелка крутиться против-за часовой стрелкой по очереди

Но если up_gr >= 180, тогда стрелка просто крутиться в одну сторону и все. Когда делаю трейс up_gr - получается, что после 180 _rotation принимает минусовое значение. -178, -176, -174 и т.д.

Помогите сделать так, чтобы градус поворота стрелки можно было представлять от 0 до 360, а не от 0 до 180.

Заранее благодарен.

onClipEvent (load) {
step = 2;
_rotation = 60;
up_gr = random(100) + 75;
down_gr = random(28) + 50;
prov = 0;
}

onClipEvent (enterFrame) {
_root.speed_t = Math.floor(_root.speed._rotation/2);
_rotation = _rotation + step;
if (_rotation >= up_gr) {
step = - step;
prov = 1;
};
if (_rotation <= down_gr & prov == 1) {
step = - step;
prov = 0;
up_gr = random(100) + 75;
down_gr = random(28) + 50;
};
}

goder
22.04.2007, 17:44
Держи


function movestrelka(){
xd = strelka._x + strelka._height / 2 ;
yd = strelka._y + strelka._width / 2 ;

m_x = _root._xmouse;
m_y = _root._ymouse;

ygol = Math.round(get_angle(xd, yd, m_x, m_y));

}


function get_angle(xc, yc, xm, ym)
{
var xa=xc+10;
var AD, AC, DC, ugol;
AD = Math.sqrt((xc - xm) * (xc - xm) + (yc - ym) * (yc - ym));
AC = Math.sqrt((xc - xa) * (xc - xa));
DC = Math.sqrt((xa - xm) * (xa - xm) + (yc - ym) * (yc - ym));
ugol = Math.acos(((AD * AD) + (AC * AC) - (DC * DC)) / (2 * AD * AC)) * (180 / Math.PI);
if (ym > yc)
{
ugol = 360 - ugol;
}
return ugol;
}


Если я тебя правильно понял

etc
22.04.2007, 18:16
Оперировать с другой переменной нужно, а её значение присваивать _rotation.

Kikasso
22.04.2007, 18:24
придумай еще свойство для клипа, например angle, и пусть оно меняется как тебе захочется. А после изменения этого свойства присваивай _rotation новое значение. Можно задейсвовать watch для автоматизации процесса.
upd: что-то я пишу медленно

Charly84
22.04.2007, 21:46
Спасибо ;) помогло ;)