![]() |
как задать поворот фигуры?
У меня за мышкой с некоторым отставанием бегает треугольничек.
Код, привязанный к мувику такой: onClipEvent (enterFrame) { _x = _x+(_parent._xmouse-_x)/40; _y = _y+(_parent._ymouse-_y)/40; } Подскажите, плиз, что сюда надо добавить, чтобы мой треугольник, в зависимости от направления своего движения, поворачивался "мордочкой" по ходу движения. Что-то связанное с _rotation, но что, не могу сам дойти. Подскажите? |
у тебя есть координаты миши и треугольника, след. по этим двум точкам строим мнимую прямую, определяем ее угол через основную тригонометрическую формулу треугольников в радианах, переводим в градусы и
фигура._rotation=degree; удачи. |
Код:
onClipEvent (load) { |
Вложений: 1
Вот помню я такое уже использовал. Вытащил из свиего архива (код взял где-то в исходниках по частям и сложил вместе).
но у Nox Noctis все намного проще |
Функция поворота по двум точкам:
function f_rotate (x1, y1, x2, y2) { tg = (y2-y1)/(x2-x1); if (x2<=x1) { cs = -1/Math.sqrt(1+((y2-y1)/(x2-x1))*((y2-y1)/(x2-x1))); } if (x2>=x1) { cs = 1/Math.sqrt(1+((y2-y1)/(x2-x1))*((y2-y1)/(x2-x1))); } rot = ((Math.acos(cs)*360)/(Math.PI*2)); if (y2<=y1) { rot = 0-rot; } return rot; /* rot - Это и есть угол поворота. Он варьируется не от 0 до 360, а от -180 до 180. Издержки. :-) Потом пишешь просто прям на мувик: _rotation = f_rotate (_x, _y, _xmouse, _ymouse); */ } Через жопу, но работает стопудово. :D На скорую руку писал. :rolleyes: Но у Nox Noctis все намного проще, как было сказано... просто выпендрица захотелось.... :-)))))) Спасиба, спасиба, спасиба...... :D :D :D |
Спасибо всем. Именно то, что было нужно.
|
:D Нет проблем... :D :D
|
| Часовой пояс GMT +4, время: 17:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.