Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 27.09.2002, 17:43
wind53 вне форума Посмотреть профиль Отправить личное сообщение для wind53 Посетить домашнюю страницу wind53 Найти все сообщения от wind53
  № 1  
wind53

Регистрация: Mar 2001
Сообщений: 37
Отправить сообщение для wind53 с помощью ICQ
Question как задать поворот фигуры?

У меня за мышкой с некоторым отставанием бегает треугольничек.
Код, привязанный к мувику такой:

onClipEvent (enterFrame) {
_x = _x+(_parent._xmouse-_x)/40;
_y = _y+(_parent._ymouse-_y)/40;
}

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

Что-то связанное с _rotation, но что, не могу сам дойти.
Подскажите?

Старый 27.09.2002, 19:21
lizergil вне форума Посмотреть профиль Отправить личное сообщение для lizergil Найти все сообщения от lizergil
  № 2  
lizergil
 
Аватар для lizergil

Регистрация: Jan 2002
Адрес: Королёв
Сообщений: 735
Отправить сообщение для lizergil с помощью ICQ Отправить сообщение для lizergil с помощью Yahoo
у тебя есть координаты миши и треугольника, след. по этим двум точкам строим мнимую прямую, определяем ее угол через основную тригонометрическую формулу треугольников в радианах, переводим в градусы и
фигура._rotation=degree;
удачи.

Старый 27.09.2002, 19:28
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 3  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Код:
onClipEvent (load) {
	rad = 180/Math.PI;
}
onClipEvent (enterFrame) {
	var dx = _parent._xmouse-_x;
	var dy = _parent._ymouse-_y;
	_rotation = Math.atan(dy/dx)*rad+(dx<0) * 180;
	_x += dx/40;
	_y += dy/40;
}

Старый 27.09.2002, 23:44
semma вне форума Посмотреть профиль Отправить личное сообщение для semma Найти все сообщения от semma
  № 4  
semma
 
Аватар для semma

Регистрация: Aug 2001
Адрес: Алматы
Сообщений: 340
Вот помню я такое уже использовал. Вытащил из свиего архива (код взял где-то в исходниках по частям и сложил вместе).

но у Nox Noctis все намного проще
Вложения
Тип файла: zip sp.zip (5.6 Кб, 80 просмотров)


Последний раз редактировалось semma; 27.09.2002 в 23:53.
Старый 28.09.2002, 00:06
hellpioneer вне форума Посмотреть профиль Отправить личное сообщение для hellpioneer Посетить домашнюю страницу hellpioneer Найти все сообщения от hellpioneer
  № 5  
hellpioneer
[+] за оскорбление участников форума

Регистрация: Jul 2001
Сообщений: 866
Отправить сообщение для hellpioneer с помощью ICQ
Функция поворота по двум точкам:

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);
*/
}


Через жопу, но работает стопудово. На скорую руку писал.
Но у Nox Noctis все намного проще, как было сказано... просто выпендрица захотелось.... :-))))))




Спасиба, спасиба, спасиба......



__________________
www.stixoid.com

Старый 28.09.2002, 12:32
wind53 вне форума Посмотреть профиль Отправить личное сообщение для wind53 Посетить домашнюю страницу wind53 Найти все сообщения от wind53
  № 6  
wind53

Регистрация: Mar 2001
Сообщений: 37
Отправить сообщение для wind53 с помощью ICQ
Спасибо всем. Именно то, что было нужно.

Старый 28.09.2002, 12:39
hellpioneer вне форума Посмотреть профиль Отправить личное сообщение для hellpioneer Посетить домашнюю страницу hellpioneer Найти все сообщения от hellpioneer
  № 7  
hellpioneer
[+] за оскорбление участников форума

Регистрация: Jul 2001
Сообщений: 866
Отправить сообщение для hellpioneer с помощью ICQ
Нет проблем...
__________________
www.stixoid.com

Создать новую тему   Часовой пояс GMT +4, время: 14:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.