![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2004
Сообщений: 11
|
Приветствую.
Делаю я значит так. Цитата:
Объект крутится относительно мыши, как теперь сделать, чтобы он ходил тоже относительно нее. Т.е. Нажимаю я вперед и объект идте не вверх, а к мыши. Назд от нее и соответственно вправо и влево. Только в поиск меня не посылаейте, я тем уже был ![]() |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
posX = mc._x;
posY = mc._y;
this.onMouseDown = function(){
posX = _xmouse;
posY = _ymouse;
}
this.onEnterFrame = function(){
y = mc._y -_ymouse;
x = mc._x -_xmouse;
angleA = Math.atan2(y, x);
degrees = angleA/(Math.pi/180);
mc._rotation = degrees;
mc._x-=(mc._x-posX)/10;
mc._y-=(mc._y-posY)/10;
}
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: May 2004
Сообщений: 11
|
Не выходит что-то. Может где не там пишу.
Значит создаю я клип - player. В этом клипе помещен еще один клип - play (обзываю его как в коде - mc) Пишу далее твой код. Проверяю, все крутится, как надо, а как теперь сделать, чтобы ходил? Куда код ходьбы помещать и может быть он какой-нибудь не такой. Я делаю так Ну и другие кнопки. Все равно player идет не относительно мыши, а просто вверх, вниз, вправо и влево. Кто подскажет, может для этого по-другому надо програмить ходьбу? |
|
|||||
|
Регистрация: May 2004
Сообщений: 11
|
Вот блин
![]() Еще раз посмотрел код. Sergwizard, ты меня неправильно понял. Да и я сразу че-то не догнал. Мне надо, чтобы не при нажатии левой кнопки мыши объект перемещался туда, а чтобы он двигался относительно курсора. Например нажимаю я на кнопку вперед и обект идет в сторону мыши. Т.е. можно ли мистему координат поменять. Вначале я уже писал, как обект поворачиваю, а можно ли вместе с ним координаты повернуть? |
|
|||||
|
Систему координат конечно можно повернуть, засунув двигаемый мувик внутрь вращаемого. Но тогда получатсья неприятный эфекты при вращении (не относительно центра вращение будет)
Так что лучше не парится и при движении вперед смещать в зависимости от угла: this._x += Math.cos(this.rotation/180*Math.pi); this._y += Math.sin(this.rotation/180*Math.pi); |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Что-то я тебя не пойму. Что такое "кнопка вперед"? При чем здесь Key(87)? Насколько я помню, это буква W. Ну, если ты так хочешь, то - пожалуйста. Но, мне кажется, что второй вариант в приаттаченом зипе – более интересный и функциональный.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: May 2004
Сообщений: 11
|
silin, пасиба большое
Вправо, влево постараюсь сам догнать.sergwizard, у меня твой архив не распаковывается. |
|
|||||
|
Регистрация: May 2004
Сообщений: 11
|
Вот блин. Он убыстряется и умедляется относительно того на каком расстоянии от него курсор, а нужно, чтобы все двигалось на 1px. Вот поэтому я и спрашивал, как систему координат можно поменять. Или по-другому пожно сделать, еще как?
Заранее спасибо. |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Если нужно равномерное движение, то код такой:
this.onEnterFrame = function(){
var speed = 2;
y = mc._y -_ymouse;
x = mc._x -_xmouse;
mc._rotation = Math.atan2(y, x)/(Math.PI/180)
if(Key.isDown(38)){
mc._x -= Math.cos(Math.atan2(y, x)) * speed;
mc._y -= Math.sin(Math.atan2(y, x)) * speed;
}
if(Key.isDown(40)){
mc._x += Math.cos(Math.atan2(y, x)) * speed;
mc._y += Math.sin(Math.atan2(y, x)) * speed;
}
}
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
![]() |
Часовой пояс GMT +4, время: 05:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|