![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 60
|
спасибо. но кажется проблема не в этом...
![]() |
|
|||||
|
ну тогда опиши свой алгоритм словами а то я не пойму че ты сделать пытаешься
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 60
|
Щас будет...
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 60
|
_root.pluch._rotation = Math.atan((_root.pluch._y-_ymouse)/(_root.pluch._x-_xmouse))*180/Math.PI;//чтобы луч поворачивал за мышью на 180
if (_root.apt._y<-_root.apt._x*(_root.pluch._y-_ymouse)/(_root.pluch._x-_xmouse)*(-2) & _root.apt._y>-_root.apt._x*(_root.pluch._y-_ymouse)/(_root.pluch._x-_xmouse)*2) {//задаём 2 графика, по середине которых будет похищающий луч
_root.apt.d = _root.apt._x*_root.apt._x+_root.apt._y*_root.apt._y;//_root.apt.d - квадрат диагонали от начала координат(для примера, на самом деле будет от начала луча) к аптечки
_root.apt.d -= 150;//уменьшаем её
_root.apt._x = Math.sqrt(_root.apt.d-_root.apt._y*_root.apt._y);//вычисляем _х аптечки
_root.apt._y = _root.apt._x*(_root.pluch._y-_ymouse)/(_root.pluch._x-_xmouse);//и _y
}
Последний раз редактировалось fromotherplanet; 25.08.2006 в 17:36. |
|
|||||
|
кажется я понял... ты хочешь сделать так: луч поворачивается за мышкой, если аптечка попала в луч, то она приближается на 150 пикселей... так?
Последний раз редактировалось whiteRed; 25.08.2006 в 18:02. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
я же говорил, что гадалки в отпуске
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 60
|
почти, двигаться он щдолжен постоянно, и равномерно, а 150 или 1 - уже значения не имеет, поменять в любой момент можно....
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 60
|
Цитата:
![]() |
|
|||||
|
...почувствовал себя гадалкой...
![]() |
|
|||||
повернули луч;
var aptRot = Math.atan2(apt._y-pluch._y, apt._x-pluch._x)*180/Math.PI; //угол от луча к аптечке
//находим разницу углов от луча к аптечке и собственно луча
var dRot = Math.abs(aptRot - pluch._rotation);
if(dRot>180) dRot=Math.abs(dRot-360);
if(dRot<половина_угловой_ширины_луча){
//приближаем аптечку на 10%
apt._x = apt._x*0.9 + pluch._x*0.1;
apt._y = apt._y*0.9 + pluch._y*0.1;
}
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|