|
|
|||||
Регистрация: Oct 2009
Сообщений: 174
|
движение объекта за мышью
Здравствуйте! подскажите пожалуйста как можно сделать, чтобы объект movieClip (человечек) поворачивался и двигался какбы к указателю мыши, т.е. мышью поворачивался, и двигался при нажатии на кнопку "вверх".?
|
|
|||||
Регистрация: Feb 2010
Сообщений: 14
|
ну движение от кнопок легко отследить а вот чтоб поворачивался к мышке мне тоже очень интересно!)
|
|
|||||
очень и очень просто.
тригонометрия. конкретно: обратный тангенс. (син. arc tangent, inverse tangent, arc tan, arctangent) p.s. уже была эта тема не раз на этом форуме, тем более, в прикрепленных темах ссылка на то, как сделать игру про астероиды. |
|
|||||
Регистрация: Oct 2009
Сообщений: 174
|
извиняюсь конечно. но всёже продолжу эту тему раз уж создал. ну предположим, через передвижение мыши узнаём некоторый угол на который поворачивается объект. но далее надо двигать его вверх, но этот верх может быть уже вовсе не в верху а например внизу или ещё гденибудь. как с этим решить можно?
|
|
|||||
Регистрация: Oct 2009
Сообщений: 47
|
Поворот к мыши можно сделать например вот так:
addEventListener(Event.ENTER_FRAME, rotateToMouse); function rotateToMouse(event:Event){ myClip.rotation = getAngle(mouseX, mouseY, myClip.x, myClip.y); } function getAngle(x1:Number, y1:Number, x2:Number, y2:Number):Number { var radians:Number = Math.atan2(y1-y2, x1-x2); return rad2deg(radians); } function rad2deg(rad:Number):Number { return rad * (180/Math.PI); } |
|
|||||
Регистрация: Oct 2009
Сообщений: 174
|
ага, спасибо, работает хорошо, правда поворачивается он не к указателю мыши а кудато левее него ну тоесть порядка 90 градусов разница. но это не проблема.
|
|
|||||
Cornford, как это верх не верх, низ не низ?
Посмотрите на этом форуме, вверху есть ссылка на туториал, где рассказывается как сделать игру про астероиды. Там затрагиваются вопросы элементарной математики, которая может пригодится. Собственно, конкретно надо смотреть в сторону, что такое вектор. если хочется чуть-чуть глубже копнуть, то в инете есть небольшая книженция (инглишь), где в доступной форме объясняются основы, называется: Beginning Math and Physics for Game Programmers By Wendy Stahler |
|
|||||
Вот у Вас есть угол (получили через Math.atan2)
Тогда берем скорость и "поворачиваем" ее на этот угол. Проще представить, если разложить скорость на 2 составляющих: вертикальную и горизонтальную. За один кадр (допустим) мы должны пройти прямо вверх 10 пикселей. Теперь, посмотрев на указатель мыши, мы понимаем, что "верх" относительно нашего персонажа уже не то же самое, что и "верх" относительно сцены. Берем нашу скорость (10 пикселей за кадр) и умножаем ее на Math.sin(radians) - мы получим расстояние по вертикали, на которое надо сдвинуть нашего человечка за один кадр. А Math.cos(radians) даст нам путь по горизонтали. Здесь вертикаль и горизонталь - относительно сцены. PS Насчет этого: Цитата:
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 27.02.2010 в 04:11. |
|
|||||
Регистрация: Jan 2010
Сообщений: 26
|
Тут есть пример с исходником http://www.flashkit.com/movies/Scrip...2672/index.php
|
Часовой пояс GMT +4, время: 18:50. |
|
« Предыдущая тема | Следующая тема » |
Теги |
движение , мышь |
|
|