Эффект взрыва довольно часто используется в флеш-играх. И, естественно, флешерами выработано много способов создания этого эффекта. Кто-то предпочитает рисовать взрыв в виде MovieClip-а, кто-то имитирует взрыв с помощью различных алгоритмов на ActionScript, а есть и те, кто комбинирует эти способы (например рисуют частицы, а потом анимируют их при помощи кода). Я не буду оригинален и выберу первый путь. Но рисовать нам ничего не придётся. За нас всё нарисует специальный генератор эффекта взрыва - программа Explogen.
Интерфейс Explogen прост и интуитивно понятен. Есть ряд настроек анимации взрыва, частиц, настройки цвета. К сожалению, прозрачный фон не поддерживается и, возможно, вам придётся потом исправить этот недостаток в другом растровом редакторе. Все внесённые изменения можно сразу же просмотреть в окне предпросмотра.
Если эффект вас устраивает, то нажимайте кнопку Export и результат будет сохранён программой в виде набора графических файлов с расширением bmp. Обратите внимание, что файлы будут сохранены в туже папку, где находится и сама программа. Каждая картинка будет соответствовать отдельному кадру эффекта. Картинки пронумерованы в той последовательности, в какой они образуют анимацию взрыва. Пример такого отдельного изображения вы можете видеть ниже.
Если вас всё устраивает, то скачать программу можно с kenginegaming.com или с файлообменника на народе по этой ссылке.
Как это можно применить во Flash?
Я делал следующее:
- импортировал сгенерированную в Explogen последовательность изображений в флеш-редактор (это может быть и Macromedia Flash, и Adobe Flash - в данном случае это маловажно);
- создавал MovieClip с точкой регистрации посередине (!);
- в данный MovieClip на каждый кадр помещал импортированные ранее изображения в соответствии с порядком нумерования данных изображений, а потом выравнивал эти изображения по центру мувика.
Таким образом у меня получался мувиклип с анимацией взрыва на его временной шкале. Например, такой:
По моему субъективному мнению, получилось не так уж и плохо...
Наш мувик с анимацией эффекта взрыва мы, как и любой другой мувик, можем добавлять в наши проекты динамически. Для примера сделаем приложение, в котором эффект взрыва будет возникать при каждом клике по сцене флеш-ролика, а координаты центра взрыва будут соответствовать координатам курсора мышки.
Код ActionScript 3.0:
stage.addEventListener(MouseEvent.CLICK, mClick);
function mClick(event:MouseEvent):void
{
var explosion:Explosion = new Explosion();
explosion.gotoAndPlay(1);
explosion.rotation = Math.round(Math.random()*360);
addChild(explosion);
explosion.x = mouseX;
explosion.y = mouseY;
}
Класс Explosion из данного кода - это класс нашего мувика с анимацией взрыва. А чтобы взрывы не были похожи друг на друга, мы в случайном порядке будем менять угол вращения создаваемых объектов.
У меня получилось следующее:
Конечно, данный способ имитации эффекта взрыва не является идеальным. Использование растра увеличивает размеры готового флеш-проекта. Кроме этого, непрозрачный фон приходится делать прозрачным с помощью сторонних растровых редакторов, а это не очень удобно. Но, с другой стороны, вы можете создавать нужный вам эффект в визуальном редакторе и легко его изменять, править. А сам эффект не нагружает флеш-плеер (что весьма актуально для анимации частиц).
Исходник к данному уроку под Adobe Flash CS5.5 скачать можно здесь.