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

Andrey12 21.01.2007 17:52

Движение к цели
 
Проблемка следующего характера:
Есть персонаж, который находится в точке А. При щелчке левой кн.мауса Он должен идти со скоростью Х к точке Б (место, где состоялся щелчок). Для этого мне нужен код который может решить проблему. Знаю, ламерский вопрос просто я около 2 лет во флеше не сидел в связи с нехваткой времени и не помню что именно надо писать в этом случае. Подскажите кому не трудно. Заранее благодарен.

silin 21.01.2007 20:02

интресно, что из этого тебе удалось забыть за два года:
-событие клика: onMouseDown
-координаты клика: _xmouse, _ymouse
-направление a->b: fi=Math.atan2(b.y-a.y,b.x-a.x)
-изменение координат объекта по направлению: dx=v*Math.cos(fi); dy=v*Math.sin(fi);

зы: вопрос 'куда это все писать', думаю будет проигнорирован..
зыы: если знаешь, что вопрос ламерский, зачем сюда постишь..

Andrey12 21.01.2007 20:13

из вышеперечисленного меня интересует смена координат обьекта, шаг с которым надо передвигаться и прочее в моей бд есть)

Kikasso 21.01.2007 20:15

Уравнение движения чудовищно сложное
Код:

_x += dx; _y += dy;
откуда dx и dy берутся написал silin
зы Когда не знаешь да забудешь..

Andrey12 21.01.2007 20:26

Да нет я чесно 2 года не видел флеш в глаза. Впервые я работал с ним гдето в 2004м на МХ 2004, методом научного тыка. Подобное делал: стоит 2 круга в разных местах и один из них был я, а другой - враг. Враг перемещался ко мне с Х скоростью пока не столкнулся хит тестом. А я щелкал по екрану и кружок двигался, а враг опять начинал бежать потому как хит тест прекратился. А этот пример остался на старом компе. Вспомнить точно как все это проделать не получилось потому и обратился за помощью к вам. Я вижу без сарказма здесь никак не обходятся...

silin 21.01.2007 20:38

изволь
Код:

//mc - это враг
var x:Number=10;
function onEnterFrame(){
        if(mc.hitTest(_xmouse,_ymouse))        dx=dy=0;
        mc._x+=dx;
        mc._y+=dy;
}
function onMouseDown(){
        var fi=Math.atan2(_ymouse-mc._y,_xmouse-mc._x);
        dx=x*Math.cos(fi);       
        dy=x*Math.sin(fi);
}

зы: сарказм не причем: написать код изначально было проще/быстрее, чем пытаться объяснить, что не дело сюда постить такие вопросы

Andrey12 21.01.2007 20:54

В любом случае - спасибо за помощь.

Kikasso 21.01.2007 22:01

Mожно было порыться в исходниках в разделе "для начинающих"
вот смотрим http://www.flasher.ru/forum/showpost...1&postcount=25
второе сверху - немного переделать и ок


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

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