Реалистичный эффект падающего снега на ActionScript 3.0. Продолжение.

Продолжим рассмотрение, начатое несколькими постами ранее, замечательной библиотеки классов на ActionScript 3.0, которая создаёт потрясающий по своей реалистичности эффект падающего снега. В прошлой части мы научились добавлять сам эффект в наши флеш-проекты. Сегодня мы познакомимся с тем, как настраивать эффект под свои надобности и художественный вкус.

Настройка параметров эффекта падающего снега в данной библиотеке осуществляется через изменение значений у свойств класса SnowDisplay.

Первым делом, нам надо знать, как изменить интенсивность эффекта, то есть количество падающих снежинок (кому-то нужен снегопад, а кому-то - редкие падающие снежинки). Для этого нам надо изменить значения двух свойств:

- waitCount - количество кадров перед появлением новой партии снежинок (по умолчанию стоит один кадр);

- particlesToAddEachFrame - количество одновременно добавляемых снежинок (по умолчанию за один кадр добавляется две снежинки).

Например, добавим в наш проект эффект слабенького-слабенького снегопада. Для этого через каждые 10 кадров будем добавлять всего одну снежинку.

Код ActionScript 3.0:

import com.flashandmath.dg.display.SnowDisplay; var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight); snow.waitCount = 10; snow.particlesToAddEachFrame = 1; addChild(snow);

Впрочем, лучше один раз увидить, чем десять раз прочитать. Смотрим...

Загрузить Adobe Flash Player

Чего нет на приведённой выше демке? Правильно, там нет ветра. Как же добавить ветер в наш снегопад? Для этого у класса SnowDisplay есть два специальных свойства:

- windX - "ветер" по оси x (по умолчанию имеет значение 1);

- windY - "ветер" по оси y (по умолчанию стоит 1).

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

Давайте, для примера, создадим снегопад при сильном ветре...

Код ActionScript 3.0:

import com.flashandmath.dg.display.SnowDisplay; var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight); snow.windX = 10; snow.windY = 2; addChild(snow);

Результат:

Загрузить Adobe Flash Player

Если же нам надо, чтобы ветер дул в другую сторону, то меняем значение windX на отрицательное.

Код ActionScript 3.0:

import com.flashandmath.dg.display.SnowDisplay; var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight); snow.windX = -10; snow.windY = 2; addChild(snow);

Естественно, мы имеем возможность влиять и на размеры снежинок. Для этого в нашем распоряжении есть следующие свойства:

- _maxParticleSize - максимальный размер снежинки (1,5 по умолчанию);

- minParticleSize - минимальный размер снежинки (1,5 по умолчанию);

- minScale - минимально возможное масштабирование снежинки (0,5 по умолчанию).

Но, честно говоря, я бы не советовал вам изменять эти настройки: смотреться это будет не очень красиво, а вот ресурсы "кушать" будет непомерно :-(

За глубину эффекта падающего снега отвечают следующие свойства:

- _fLen - фокусное расстояние (по умолчанию стоит 600);

- _zBack - положение по оси z самой отдалённой от зрителя снежинки (по умолчанию стоит 0);

- _zRange - диапазон, в рамках которого изменяется глубина снежинок, то есть её положение по оси z (по умолчанию стоит 500).

Играясь с глубинами, можно добиться разнообразных эффектов. Например, можно создать эффект идущего вдалеке сильного снегопада.

Код ActionScript 3.0:

import com.flashandmath.dg.display.SnowDisplay; var snow:SnowDisplay = new SnowDisplay(stage.stageWidth,stage.stageHeight/2); snow._zBack = 1000; snow._zRange = 1000; addChild(snow);

Результат:

Загрузить Adobe Flash Player

Должен признаться, что я осветил далеко не все настройки данной библиотеки классов. Впрочем, описанных настроек вполне достаточно для создания красивых эффектов с падающим снегом и не только (всё зависит только от вашей фантазии).

Исходник под Adobe Flash CS5.5 и саму библиотеку классов скачать можно тут.

Автор: admin

Дата добавления: 2011-11-09

Просмотров: 12024

Рейтинг поста: +19-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2017-12-29
Здравствуйте.
1.) Пример с ветром - это второй пример в уроке. Не надо менять ничего в папках. Просто изменяйте значения у свойств windX и windY (смотрите второй пример в уроке).
2.) Вместо addChild используйте addChildAt:

addChildAt(snow, 0);

где второй параметр - это номер слоя, на который надо поместить снег (от 0 и выше).
Комментатор
Комментарий добавил(а): Артём
Дата добавления: 2017-12-29
Здравствуйте.Очень понравился урок,но есть парочка моментов:как изменить направление снега(видел файлы со скриптами в папке com,но за какой приниматься и какие значения менять,без понятия,так как неопытный) и как его перенести на задний план,чтоб спереди,допустим,был персонаж?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-04-03
Хоспади! Да вы настырный :-)
Комментатор
Комментарий добавил(а): сар
Дата добавления: 2014-04-03
http://www.flashandmath.com/about/terms

Нашёл!!!
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-03-30
Лично у меня не было случаев, чтобы клиенты интересовались происхождением вспомогательных библиотек. Библиотеку выложил сам автор и дополнительных условий не указал. Думаю, этого вполне достаточно, чтобы использовать данный код без мук совести :-)
Комментатор
Комментарий добавил(а): сар
Дата добавления: 2014-03-29
Сколько ни смотрел на этом flashandmath, но так и не смог найти лицензионного соглашения или чего-то подобного. Я могу использовать эту библиотеку для создания баннеров для работы (в коммерческих целях это называется, или как) или нет?. А то так заказчик скажет, что мол без разрешения это использовать не буду, а мне и показать ему будет нечего.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2012-09-27
kalee, данная библиотека скорее предназначена для программистов, чем аниматоров. Но удалить снег можно очень просто. Надо в нужном кадре прописать следующую команду:

removeChild(snow);
Комментатор
Комментарий добавил(а): kalee
Дата добавления: 2012-09-27
Еще вопрос чайника)
А как сделать, чтобы снег падал до определенного ключевого кадра, а потом пропадал?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2011-12-27
Ну библиотека, скорее всего, и ориентирована на баннеры. Хотя такой уж катастрофической нагрузки я не заметил
Комментатор
Комментарий добавил(а): Егор
Дата добавления: 2011-12-27
Страшно жрет ресурсы, подойдет разве что для баннеров. У меня игра с 1й анимацией. Человечек тупо не ходит, причем с параметрами первого варианта в этом посте.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 1 из 2: 12
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика