Стрелы в Flash

От временного безделья внедрили стрелы в Flash - теперь они видимые и летят куда надо. При проигрывания события "удаленная атака" вызываем функцию makeArrow. В функции четыре параметра - исходные координаты и цели.

В самой функции создается объект типа creature с типом -2, с анимацией передвижения. Количество шагов анимации (animate_num) зависит от расстояния (иначе каким не было расстояние - стрела летела одно и тоже время - и для выстрела в упор была очень замедленная анимация).

Само изображение стрелы - маленький MovieClip ввиде стрелки, с центом ровно посередине (чтобы срабатывало правильно вращение), которое устанавливается в зависимости от (dx,dy) - разницы между начальными и конечными координатами.

Показать Flash-код.

Столкнулись с маленькой проблемой - нужно было изменять координаты стрелы чтобы она летела по центру, решением было бы сделать MovieClip - размером 64x64 (как базовая клетка), но тогда вращение было бы не правильным. Решение - сделали клип в клипе, сам клип стрелы (который вращается) создается внутри базового клипа, с смещением на центр (координаты 32x32).

Когда анимация у стрелы заканчивается стрела становится невидимой (.live=false), и также при создании новой стрелы - сначала проверяется нет ли уже созданной, но уже не видимой стрелы (чтобы массив creatureList не пух).

Особенно красиво получилось анимация "множественного выстрела" когда стрел выпускается сразу несколько.