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

Toxedo 30.08.2008 10:38

Нужно чтобы аттаченые мувики летели не точно в одном направлении а в пределах определеного угла. Будьте добры подскажите кусок кода или хотябы ключевое слово в поиске, а то на все запросы типа "векторы""Углы" находит хрень по перебросу из корел дроу изображения во флеш)

Division 30.08.2008 11:35

Вообщем, представим, что каждый мувик движется под своим углом. То есть что-то вроде.
Код:

_x+=Speed*Math.cos(ang);
_y+=Speed*Math.sin(ang);

Тогда при добавлении мувика нужно задать его угол и скорость.
Предположим, что среляем мы под углом Angle, разброс пуль составляет D.
Значит, инициализация мувика выглядит как
Код:

ang = Angle + Math.random()*D-D/2;
Speed = 8;

Вроде так. Могу ошибиться, так как писал сразу в форуме. Не забываем, что углы в радианах (:

Toxedo 30.08.2008 15:36

Чтот рандом не хочет работать как нужно. Все равно все Мк по одной линии летят(

Division 30.08.2008 16:00

Покажи свой код. Думаешь я телепат?

Toxedo 30.08.2008 16:21

Код:

i = 1
a = "mc"
ang = 1 + Math.random()*10-10/2;
Speed = 8;
onEnterFrame = function(){
        this[a+i]._x+=Speed*Math.cos(ang);
        this[a+i]._y+=Speed*Math.sin(ang);}
                       
onMouseUp = function(){
        i++
        this.attachMovie("ss", a+i, this.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse });
        trace ([a+i])
        }


Division 30.08.2008 16:37

Насколько я понял, у тебя ang общий для всех клипов. Сделай у каждого мувика своё свойство ang.
UPD: и ещё я бы советовал переводить угол в радианы перед скармливанием синусам/косинусам

Toxedo 30.08.2008 20:06

Цитата:

Сообщение от Division (Сообщение 761269)
Насколько я понял, у тебя ang общий для всех клипов. Сделай у каждого мувика своё свойство ang.
UPD: и ещё я бы советовал переводить угол в радианы перед скармливанием синусам/косинусам

Спосибо, все заработало как нужно, но тут еще одна вешь. Угол по которому отстреливаются Мк не изменяется, а мне нужно чтобы был прицел по нужному Клипу, допстим "Vrag". Как это можно реализовать, но также разбросом рандомным, чтоб ни каждый Мк попадал в Vrag?

Division 30.08.2008 20:36

Ну а в чем проблема-то?
Пишешь что-то вроде
Код:

ang = NeedAng + Math.random()*10-10/2;
Ну а NeedAng находишь при помощи функции Math.atan2. Которая, кстати, возвращает радианы (:
PS смотри гугл и help


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

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