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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.09.2007, 18:31
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 1  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
По умолчанию вращение клипа в зависимости от курсора

на сцене есть кнопка 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
Как наладить?
Спасибо.

Старый 04.09.2007, 18:41
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 2  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Странно - но твой код крутит мой клип от 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;
сорри за названия


Последний раз редактировалось Molecula; 04.09.2007 в 18:43.
Старый 04.09.2007, 18:53
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 3  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
а у меня трасируются от -90 до 270
запускаю так:
Код:
btn.onPress = function() {
	onMouseMove = function () {
		circ(btn);
	};
};
btn.onRelease = btn.onReleaseOutside=function () {
	delete (onMouseMove);
};

Старый 05.09.2007, 10:12
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 4  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
А что мешает добавить Пи/2 к углу в ротации?
__________________
"We Are The Champions My Friends!" Queen

Старый 05.09.2007, 10:17
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 5  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Код:
onMouseMove=function(){
	мой_мувик_стрелка._rotation=Math.atan2(_ymouse,_xmouse)*180/Math.PI
}
Этот код должен быть помещен в родителя мой_мувик_стрелка, если сделать родителем _root, то система отсчета координат будет левый верхний угол и соответственно вращаться стрелка будет только на 15 минут


Последний раз редактировалось chingachgoog; 05.09.2007 в 10:22.
Старый 05.09.2007, 14:08
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 6  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
chingachgoog, спасибо за формулу,
но, в вашем варианте у меня стрелка отстаёт от мышки на 90 град.
то есть если мышка справа от клипа, то стрелка смотрит вверх.

CorC, то что угол поворота будет не соответствовать положению мышки, как и в примере chingachgoog

Старый 05.09.2007, 14:17
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 7  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от Mnilionic
chingachgoog, спасибо за формулу,
но, в вашем варианте у меня стрелка отстаёт от мышки на 90 град.
то есть если мышка справа от клипа, то стрелка смотрит вверх.
Это зависит от того как стрелка нарисована. (т.е. положения исходного клипа). Всего делов - перерисовать мувик-стрелку (положить его горизонтально), либо добавить в формулу смещение на 90 градусов.

Старый 05.09.2007, 14:32
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 8  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
тоесть при этой формуле нулевой градус не вверху, а как в школе - справа?
хорошо, щас запробую.
Спасибо

Старый 05.09.2007, 15:01
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 9  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
отлично! работает как положенно. Большое спасибо.

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

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

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


 


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


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