|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Движение за мышью с ускорением, и полным торможением к прибытию к мыши, как?
Знаю как определить угол поворота в сторону мышки, а следовательно и то, как двигать объект в сторону мышки.
Ускорение естественно тоже понятно. Непонятно одно, как сделать так, чтобы объект в определенном месте (по расчетам) начинал тормозить так, чтобы он затормозил полностью в момент когда он столкнется с координатами мышки? Сейчас же додумался до того, что можно начинать торможение тогда, когда мышка перестает двигаться, в принципе мне и это бы подошло, но все таки остается интересным как сделать описанное мною выше.
__________________
Рожденный ползать, везде пролезет... |
|
|||||
Как вариант, по теореме Пифагора определять расстояние между объектом и курсором и домножать на него скорость объекта. Соответственно, чем ближе - тем медленнее, а в точке нахождения курсора расстояние будет нулевым, соответственно, объект остановится.
__________________
Дело не в тебе |
|
|||||
Т.е., скажем:
if(hero.x > mouseX) var distanceX = (hero.x - mouseX) * speed; else var distanceX = (mouseX - hero.x) * speed; if(hero.y > mouseY) var distanceY = (hero.y - mouseY) * speed; else var distanceY = (mouseY - hero.y) * speed; Т.е. Таким образом?
__________________
Рожденный ползать, везде пролезет... |
|
|||||
а че бы не по-простому
public class MouseHunter extends Sprite { private const a:Number = 0.2; public function MouseHunter() { graphics.beginFill(0); graphics.drawCircle(0, 0, 20); addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function onEnterFrameHandler(event:Event):void { x += a * mouseX; y += a * mouseY; } } |
|
|||||
Напиши пожалуйста решение для AS 3.0.
Твой вариант на AS 2.0.
__________________
Рожденный ползать, везде пролезет... |
|
|||||
и где здесь as2? ниодного намека на as2 не вижу
__________________
я могу стать всем, если только захочу |
|
|||||
Ну точно могу сказать что это не AS 3. Т.к. в AS 3 все методы расфасованы по пакетам, которые нужно подключать.
А также, некоторые методы используемые silin в AS 3 вообще удалены.
__________________
Рожденный ползать, везде пролезет... |
|
|||||
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Уважаемый, Neirol, вы не правы...
|
|
|||||
Ну тогда получается что это не я не прав, а Flash CS4 не прав
Я записал написанное silin в отдельный файл и назвал его так же, как и он назвал свой класс. Далее самостоятельно подключил пакеты и в ответ получил ошибку: Migration issue: The method drawCircle is no longer supported. В замен которого, как я только что заметил должна идти функция drawOval (подсказывает флеш), хотя такую функцию он тоже не воспринимает.... И вдобавок такая ошибка насчет хэндлера EnterFrame.... 1046: Type was not found or was not a compile-time constant: Event. Добавлено через 34 секунды Т.е. в итоге с моими исправлениями и подсказками флеша: package { import flash.display.Sprite; import flash.display.Graphics; public class MouseHunter extends Sprite { private const a:Number = 0.2; public function MouseHunter() { graphics.beginFill(0); graphics.drawOval(0, 0, 20); this.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function onEnterFrameHandler(e:Event):void { x += a * mouseX; y += a * mouseY; } } }
__________________
Рожденный ползать, везде пролезет... |
|
|||||
о сколько на открытий чудных..
Neirol, сори за непонятки, просто объявление пакета и добавление необходимых импортов дело хоть и обыденно-обязательное, но к логике кода никакого отношения не имеет, поэтому и привел без них, здесь это в общем-то обычное явление, не удивляйся Добавлено через 4 минуты насчет 'The method drawCircle is no longer supported' компилятор тебя обманывает: еще поддерживается |
Часовой пояс GMT +4, время: 18:40. |
|
« Предыдущая тема | Следующая тема » |
Теги |
движение , как , мышь , торможение , ускорение |
Опции темы | |
Опции просмотра | |
|
|