PDA

Просмотр полной версии : движение под заданным углом


Therion
05.11.2006, 04:57
Нодо чтобы мувик двигался под заданным углом
поидее нечего сложного,и вроде делал когдато но почемуто не работает...:(
помогите плиз


a.onEnterFrame=function(){
var XX = this._x -_xmouse
var YY = this._y-_ymouse
R = Math.atan2(YY,XX)/(Math.PI/180)
this._x+=Math.sin(R)*5
this._y-=Math.cos(R)*5
}

Хемуль
05.11.2006, 05:17
2 Therion:
Можете отсюда вычленить:
http://flasher.ru/forum/showthread.php?t=84373&highlight=%EA%F3%F0%F1%EE%F0%EE%EC

iNils
05.11.2006, 05:32
a.onEnterFrame = function () {
var dx = this._x - this._parent._xmouse;
var dy = this._y - this._parent._ymouse;
var angle = Math.atan2 (dy, dx);
if (Math.abs (dy) < 5 && Math.abs (dx) < 5) {
this._x = this._parent._xmouse;
this._y = this._parent._ymouse;
} else {
this._x -= Math.cos (angle) * 5;
this._y -= Math.sin (angle) * 5;
}
};

Therion
05.11.2006, 17:21
Спасибо iNils :)
только скажи плиз почему ты берешь "this._parent._xmouse" вместо "_xmouse"? Есть ли какаето разница?

iNils
05.11.2006, 17:40
Спасибо iNils :)
только скажи плиз почему ты берешь "this._parent._xmouse" вместо "_xmouse"? Есть ли какаето разница?
В данном случае нет.

etc
05.11.2006, 18:39
Не в тему: какой нехороший человек придумал в atan2 ставить первым y, а не x? Может мне кто-нибудь растолкует?

iNils
05.11.2006, 18:47
Не в тему: какой нехороший человек придумал в atan2 ставить первым y, а не x? Может мне кто-нибудь растолкует?Это пошло от того, что тангенс угла = Y / X

etc
05.11.2006, 19:06
Понятно. Тем не менее, часто делаю в этом месте ошибку :(

iNils
05.11.2006, 20:19
Понятно. Тем не менее, часто делаю в этом месте ошибку :(По скольку это исключение, то запомнить на мой взгляд легко.

etc
05.11.2006, 20:40
Да уж запомнил, но лучше бы таких исключений не было.