![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 3
|
У меня к вам 2 вопроса(а точнее 2 варианта реализации . . .)
Есть космический корабль 1)Допустим юзер там шелкает куда кораблику переместится,сначала я его поворачиваю (Math.atan2 (a["ships" + String (MyShip)]._y - y, a["ships" + String (MyShip)]._x - x) * 180 / Math.PI) + 270; 2)Второй вариант,движение корабля происходит по программно созданной кривой,но увы я не знаю как привязать клип корабля к кривой,чтобы он по ней двигался. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 785
|
вот функция к первому вопросу
function spaceship(shipname) {
onMouseDown = function () {
X = _xmouse;
Y = _ymouse;
};
shipname.onEnterFrame = function() {
XD = this._x-X;
YD = this._y-Y;
R = Math.atan2(YD, XD)/(Math.PI/180);
G = R-this._rotation;
this._rotation += G/10;
};
}
)
__________________
Нано-флешер (в отставке) |
|
|||||
|
1. останавливать так же как начинали движение (вы же не написали как)
2. использовать координаты точек этой же кривой (раз она програмно) в качестве координат скажем центра корабля.
__________________
"We Are The Champions My Friends!" Queen |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Ух ты какая статья полезная!!! Спасибо большое
P.S. Извините за offtop. |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 32
|
мне кажется, этот вариант реализации тоже подойдет:
createEmptyMovieClip("korablik",0);
korablik.beginFill(0xcccccc,100);
drawRect(korablik,-10,-5,20,10);
korablik.endFill();
createEmptyMovieClip("target",1);
target.beginFill(0xcc0000,100);
drawRect(target,-2,-2,4,4);
target.endFill();
korablik._x=100
korablik._y=100
function onMouseDown() {
target._x = _xmouse;
target._y = _ymouse;
onEnterFrame = function () {
goto(korablik,target._x,target._y,0.2,4)
};
}
function goto(mc:MovieClip, gotoX:Number, gotoY:Number, w:Number, speed:Number) {
var nx:Number = Math.cos(mc._rotation*Math.PI/180);
var ny:Number = Math.sin(mc._rotation*Math.PI/180);
var dx:Number = gotoX-mc._x;
var dy:Number = gotoY-mc._y;
//находим угол, между направлением мувика и точки{gotoX,gotoY}
var theta:Number = Math.atan2(nx*dy-ny*dx, nx*dx+ny*dy);
//w - коэффициент вращения от 0 до 1
mc._rotation += w*theta*180/Math.PI;
mc._x += nx*speed;
mc._y += ny*speed;
}
function drawRect(mc:MovieClip,x:Number,y:Number,w:Number,h:Number)
{
mc.moveTo(x ,y );
mc.lineTo(x+w,y );
mc.lineTo(x+w,y+h);
mc.lineTo(x ,y+h);
mc.lineTo(x ,y );
}
__________________
http://www.free-lance.ru/users/goarcade |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|