Форум 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=96070)

Poohorik 22.05.2007 18:41

Как поймать объект летающий за мышкой
 
Вообщем сабж.

Код:

_root.onEnterFrame = function() {

        k = (_xmouse-box1._x)/25;

        if (box1._x<50) {
                box1._x -= k;
        } else {
                box1._x += k;
        }

};

Не получается. Дергается и глючит.

CGandA 22.05.2007 19:14

Может, лучше так
Код:

var n:Number = 5;//Скорость перемещения
_root.onEnterFrame = function() {
        var dx = (box1._x-_root._xmouse)/n;
        var dy = (box1._y-_root._ymouse)/n;
        box1._x -= dx;
        box1._y -= dy;
        updateAfterEvent();
};


Molecula 22.05.2007 19:16

Ну в данном случае он у тебя не летает а ползает влево и вправо.
Что значить "словить"?
Я лично могу навести на него курсором мыши.


...fps - не забудь увеличить.

Poohorik 22.05.2007 19:24

Ну "словить", просто остановить ползание на таком-то x.

Poohorik 22.05.2007 19:26

CGandA
Дык, ты это мне просто написал альтернатиный способ движения. А поймать-то как?

Сорри, ступил. Большое спасибо.

Molecula 22.05.2007 19:27

Так у тебя объект от мыши бегает или что...суть задача какая?
Хватать падающие яйца? Это игра?

Poohorik 22.05.2007 19:29

Molecula
Ну если бы ты скомпили код, то понял бы.

Вообщем вот что нужно было:

Код:

var n:Number = 5;//Скорость перемещения
_root.onEnterFrame = function() {
        var dx = (box1._x-_root._xmouse)/n;
        var dy = (box1._y-_root._ymouse)/n;
        box1._x -= dx;
        box1._y -= dy;
        updateAfterEvent();
        if (box1._x<50) {
                box1._x += dx;
        }
};

Ещё раз спасибо CGandA.

Molecula 22.05.2007 19:32

Да я то скомпилил, только не понял почему ты скопмилив, сказал что не то, вот я и спросил, а потом оказалось, что ты скомпили и дык всё ок.

Poohorik 22.05.2007 19:33

Блин... всё равно проскакивает иногда...

Poohorik 22.05.2007 20:01

Вообщем кто может - посмотрите код (просто в первый кадр киньте и всё)

Код:

//Objects
//Line
_root.lineStyle(1,0x000000);
_root.moveTo(100,0);
_root.lineTo(100,500);

//Box1
_root.createEmptyMovieClip("box1",_root.getNextHighestDepth());
box1.lineStyle(1,0x000000);
box1.lineTo(0,50);
box1.lineTo(50,50);
box1.lineTo(50,0);
box1.lineTo(0,0);

box1._x = 300;
box1._y = 200;

//Main Code
var n:Number = 10;
_root.onEnterFrame = function() {
        var dx = (box1._x-_root._xmouse)/n;
        box1._x -= dx;
        updateAfterEvent();
        if (box1._x<100) {
                box1._x += dx;
        }
};

Что сейчас - коробка летает за мышкой по оси X. Всегда в разных местах от нужной линии останавливается (близко, но не там где надо), если очень быстро двигать мышкой.

Что хочу - чтобы коробка остонавливалась всегда точь-в-точь на X=100.

Помогите пожалуйста сделать :o


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

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