![]() |
Как сделать частицы летящими словно их колышет ветер?
Я сделал движущиеся частицы, чтобы этот код работал, достаточно в библиотеке создать клип с именем flake
Как вы видите, у меня с моими частицами несколько проблем. Во первых, я хотел их сделать как-бы вылетающими справа, из-за экрана, и летящими влево. Со временем с помощью рандома и числа я сделаю еще и их исчезновение. Тут проблема в том, что я не знаю, как определить ширину экрана пользователя, или ширину экрана swf в данный момент. А если это все будет бэкграундом сайта - там тоже - как определить правый край? Поэтому на данный момент в плане координат появления частиц все криво. Прямые грубые числа которые никуда не подходят кроме как для теста. Я хотел сделать движение как-бы каждой частицы в разную точку на оси _y. Получился бы эффект словно их колыхает ветер (хотя на самом деле просто разные точки в немножечко разные _y летят). Я пробовал просто изменить скорость плюса к this._y, но получалась свистопляска вместо красивого полета :D Я буду рад любым идеям или даже намекам. Тут можно посмотреть swf как он есть по коду ниже: http://www.swfcabin.com/open/1342215422 Код AS1/AS2:
|
Получить ширину текущего размера окна флешки можно так:
Код AS1/AS2:
С ветром посложнее, для настоящего труЪ ветра нужно через некоторые интервалы времени генерировать рандомные направление и скорость, Это может быть тупо 2 числа: скорость и угол. Далее все снежинки двигать по этим показателям, добавляя для каждой отдельно - своё небольшое смещение, для реалистичности. Может быть вам пригодиться этот код: Код AS1/AS2:
|
Насчет массива не совсем понял. В цикле ведь тогда придется каждый раз перебирать клипы и каждый раз делать + к движению?
onEnterFrame вроде бы задает каждому клипу свой код, который они бесконечно выполняют (до условия и т.д.). А с массивом придется создавать кучу переменных для каждого мувика, чтобы в цикле соблюдать отдельное движение для каждого клипа-элемента массива. Я могу все не так понимать, кстати. Для тру ветра согласен, попробую сделать с этим что-то. Кстати, у меня во флешке клипы иногда просто исчезают. С чем это может быть связано? Возможно, глубина другого клипа используется... Спасибо за две строки кода, очень помогут! |
Получение незанятой глубины клипа:
Код AS1/AS2:
|
Ага, с глубиной уже есть эта строчка.
Сделал с помощью двух строчек кода, что Tails указал выше, получилось намного живее, чем раньше. Теперь осталось сделать так, чтобы производительность не сходила с ума. Насчет массива, если честно, не совсем понял. Я заметил, что это частое и верное решение, работа с массивом. С ним и циклом проще делать всякие вещи "по очереди". Но вот как присвоить каждому клипу-элементу массива свой "автоматический цикл движения" я не знаю. |
Вложений: 1
Есть исходник с www.freeactionscript.com. Только там код откомментирован на английском, но, в принципе, все понятно (и про добавление снежинок в массив, и про перебор массива, и про ветер).
|
Вложений: 1
Сделал максимум частиц - 140, чтобы сохранять производительность.
Вот исходник, теперь все выглядит намного живее. Исходник с массивом посмотрю, спасибо! |
| Часовой пояс GMT +4, время: 18:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.