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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.02.2006, 08:25
Music'ant вне форума Посмотреть профиль Отправить личное сообщение для Music'ant Найти все сообщения от Music'ant
  № 1  
Ответить с цитированием
Music'ant

Регистрация: Feb 2006
Сообщений: 2
По умолчанию Как "толкнуть" мувик курсором мыши?

Доброе время суток, уважаемые флэшеры!

Как сделать так, чтоб при соприкосновении курсора с объектом, объект отталкивался от курсора и двигался в противоположном от курсора направлении.

У самого меня получилось вот что:

Код:
// определяем коэффициент замедления
onClipEvent(load){
	delay = .9; 
}
//сообщаем объекту начальную скорость
on(rollOver){
	xSpeed=5;
	ySpeed=5;
}

onClipEvent (enterFrame) {
	
	// реализация замедления
	if (xSpeed<>0){
	xSpeed*=delay;
	ySpeed*=delay;
	_x+=xSpeed;
	_y-=ySpeed;
	}
	
	// условие полной остановки
	if(xSpeed<.01 and xSpeed<.01){
		xSpeed=0;
		xSpeed=0;
	}
	
}
Объект при этом постоянно двигается в одном направлении, а надо чтоб направление зависило от того, с какой стороны курсор коснется мувика.

Кто нибудь, одскажите пожалуйста! Заранее благодарен.


Последний раз редактировалось Antares; 15.02.2006 в 09:23.
Старый 15.02.2006, 09:25
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 2  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Доброе. Пользуйтесь тэгом code в следующий раз, в противном случае листинг будет стерт.

По теме:

1. Определять угол. Math.atan2( _ymouse, _xmouse ) вернет от -Пи до Пи, но не проблема возвращать от 0 до 360 градусов.

2. Умножив на синус и косинус угла модуль скорости получить нужные скорости по осям.

Старый 15.02.2006, 12:07
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 3  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
А можно для простых случаев вроде этого применять метод проще - работать не с углами, а непосредственно с векторами. Ниже вариант изменения скорости в зависимости от растояния клика от "registration point" клипа. Следует только добавить проверку на столкновение. Если скорость при столкновении менятся не должна - просто использовать знак дельтаХ или У
Код:
var dX:Number = _x - _root._xmouse;
var dY:Number = _y - _root._ymouse;

xSpeed += dX;
ySpeed += dY;
Естественно, решение с углами универсально, но очень часто - это лишнее усложнение.

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

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 2,736
Отправить сообщение для Король с помощью ICQ
решение с векторами гораздо более универсально на самом деле

Старый 15.02.2006, 16:37
Kyber Anton вне форума Посмотреть профиль Отправить личное сообщение для Kyber Anton Посетить домашнюю страницу Kyber Anton Найти все сообщения от Kyber Anton
  № 5  
Ответить с цитированием
Kyber Anton
 
Аватар для Kyber Anton

Регистрация: Oct 2005
Адрес: Воронеж-Москва
Сообщений: 671
Отправить сообщение для Kyber Anton с помощью ICQ
Да нифига подобного.
с углами - стандартное решение физической задачи(нахождение проекций скоростей), а с векторами - изврат.
__________________
(А)

Старый 15.02.2006, 21:25
Король вне форума Посмотреть профиль Отправить личное сообщение для Король Найти все сообщения от Король
  № 6  
Ответить с цитированием
Король
 
Аватар для Король

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 2,736
Отправить сообщение для Король с помощью ICQ
Kyber Anton, в чем изврат?
векторные вычисления позволяют сделать намного больше (там, где дело касается движений и столкновений), чем рассчеты углов, почитай учебник по физике

Старый 15.02.2006, 21:34
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 7  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от Король
векторные вычисления позволяют сделать намного больше (там, где дело касается движений и столкновений), чем рассчеты углов, почитай учебник по физике
Разжую подробнее:

в первом случае ты
1 ищешь угол
2 рассчитываешь значение
3 раскладываешь получившееся значение на 2 оси (2х мерное пространство)
4 применяешь получившиеся значения для каждой оси.

Во втором

1 рассчитываешь значение сразу для каждой оси.
2 Применяешь это для каждой оси осей.

Второй способ где-то в 1.5 - 2 раза быстрее %)). Правда 1 й спосоп позволяет свободно поворачивать координаты, но это редко когда приходиться делать%))

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

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 2,736
Отправить сообщение для Король с помощью ICQ
__i, ты это мне разжевываешь?


Последний раз редактировалось Король; 15.02.2006 в 21:57.
Старый 16.02.2006, 01:29
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 9  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
обижаешь %))
естественно окружающим не понявшим тебя %))

Старый 16.02.2006, 03:56
Music'ant вне форума Посмотреть профиль Отправить личное сообщение для Music'ant Найти все сообщения от Music'ant
  № 10  
Ответить с цитированием
Music'ant

Регистрация: Feb 2006
Сообщений: 2
Спасибо товарисчи! Этой ниформации больше, чем достаточно. Буду пробовать.

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

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

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


 


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


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