Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Движение клипа в сторону куда он повернут. (http://www.flasher.ru/forum/showthread.php?t=110196)

vivanov 28.03.2008 22:35

Движение клипа в сторону куда он повернут.
 
Здравствуйте!
Как сделать так чтобы клип перемещался с определенной скоростью в сторону в которую он повернут? Т.е. например если мне нужен косм. корабль(вид сверху) которого можно вращать и взависимости от того куда он повернут туда он и летит?
Спасибо заранее!

CrazyFlasher 28.03.2008 23:09

движение по вектору...даже не знаю что тут и подсказать...надо знать элементарную математику...хотя тут были посты с примерами...в частности (если мне не изменяет память) от D12 относительно недавно. А вообще поищите в гугле по поводу перемещиния, векторов и т.д.

vivanov 29.03.2008 00:38

Спасибо. Буду искать.

TanaTiX 29.03.2008 00:44

Вектор определяется 2-я точками. Что мешает создать 2 такие точки внутри вашего корабля и по ним рассчитывать вектор?
...возможно есть и другие решения.

silin 29.03.2008 01:00

"движение по вектору" канеш красивее должно получиться :)
но если по простому:
Код:

var speed:Number=4;
var grag2rad=Math.PI/180;
function onEnterFrame(){
        var fi:Number=grag2rad*mc._rotation;
        mc._x+=speed*Math.cos(fi);
        mc._y+=speed*Math.sin(fi);
       
}

другой вариант смотреть куда попадает в родителе точка (dx,0) в координатах самого мувика:
Код:

var speed:Number=4;
function onEnterFrame(){
        var p={x:speed,y:0}
        mc.localToGlobal(p);
        this.globalToLocal(p);
        mc._x=p.x;
        mc._y=p.y;
}


serhis 30.03.2008 14:29

можно еще так... Но обязательное условие чтобы в клипе рисунок был направлен вправо.
Код:

onClipEvent (enterFrame) {
        //поворот в сторону стрелки мыши
        dx = _root._xmouse-_root.chel._x;
        dy = _root._ymouse-_root.chel._y;
        strawRadians = Math.atan2(dy, dx);
        strawDegrees = 360*strawRadians/(2*Math.PI);
        _root.chel._rotation = strawDegrees;
        //движение в сторону мыши 
            _root.chel._x+=Math.cos(strawRadians)*10;
            _root.chel._y+=Math.sin(strawRadians)*10;
}



Часовой пояс GMT +4, время: 05:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.