Просмотр полной версии : дым. Максимально реалистичный...
http://www.betaruce.com/flash_swf/smoke_3.swf
Как сделать что-нибудь подобное...
Поделитесь уроком плиз... =)
Похоже на кучу круглых градиентных мувиков с меняющимися альфами + фильтры. Движение и радиусы рандомно похоже делается... Мне так кажется.
Похоже на кучу круглых градиентных мувиков с меняющимися альфами + фильтры. Движение и радиусы рандомно похоже делается... Мне так кажется.
Да да у меня есть этот компонент - все как раз как ты сказал :D
Нет там фильтров... только альфа... и AS...
Дайте плиз у кого есть исходник такого безобразия... желательно с комментами... я конечно могу попытаться с этим разобраться, но если кто-нибудь посодействует в разбирательстве буду оч.признателен...
Я честно не представляю, как можно создавать белые объекты без фильтра.
Какие белые объекты?
Дым чтоли?
Этот дым состоит из кружков с радиальным градиентом... которые аттачатся через attachMovie... (по крайней мере это было бы правильней)
И красные тоже там есть...
Я в программировании не силен, к сожалению... навыки у меня есть, но их недостаточно... Сказать как сделано могу, но написать это врядли осилю =(
осилю, но на это уйдет масса времени... =((
Есть замечательный кружечек с радиальным градиентом... я надеюсь все себе представляют его... (альфа в центре 100%, к краю снижается до 0%)
Его надо размножить и из одной точки разводить в разные стороны, так, чтобы он расходился к верху на угол, скажем, 30°... (это в принципе включает в себя их увеличение/трансформацию, но ее будет не достаточно)
Вот как сделать это?
Как сделать так, чтобы этих кружечков было море и они абсолютно рандово совершали свое движение вверх?
Естетсвенно и альфу нужно менять в пределах от 100 до 0 по мере возвышения... (рассеивание дыма)...
Было бы неплохо, если бы дым еще двигался не по прямой, а по синусоиде...
в примере он движется не прямо вверх, а немного по кривой...
Вот как?
1) "Этот дым состоит из кружков с радиальным градиентом"
Может LCD монитор мне так показывает, но у дыма есть прожилочки. Это действие фильтра.
2) "я надеюсь все себе представляют его" И не только это представляют ;)
3) Создаешь функцию которая каждые N секунд аттачит мувики на сцену и передаёт этим мувикам параметры(скажем начальные радиусы) Три мувика - это потому что там кажется три вида мувиков: два красных одын белый. При каждом вызове функции уменьшаешь альфа и меняешь координату на DX = 2-4*Math.random. В данном случае 2 амплитуда. Когда альфа становится у мувика меньше нуля, уничтожаешь мувик, таким образом не плодишь клипы на сцене.
4) Было бы неплохо, если бы дым еще двигался не по прямой, а по синусоиде...
Ага, а ещё неплохо было бы турбулентности сделать ;)
Забыл. ещё уменьшаешь радиус =) Вообще задача не такая сложная как ты думаешь.
пример-то есть?
Потому что мои эксперименты привели к тому что в отдельной сцене все работает... перевожу все это в MC другой сцены - не работает (по крайней мере я не вижу этих кругляшей приаттаченых)... Надо сделать дым из труб... был бы пример... хотябы простой... было бы проще понять как его строить =(
Разбор дыма из примера в принципе дает понимание того, что надо сделать, но оно не работает в MC...
А я хочу собственный дым, чтобы не тырить ни у кого и не брать готовых... я хочу понять как люди это делают... поэтому и прошу пример =(
1) прожилки?
Там клубы круглые и овальные... кружки трансформируются еще +ом...
А если вместо радиальных кружочков сделать битмап альфеный (фотошопное облако) и при движении его вращать, то будет вообще зашибись. Я так облака делал - выглядит ох-но. Правда тормоза были такие... 2-5 fps не больше показывало :((
veterok4
03.03.2006, 09:22
http://www.betaruce.com/flash_swf/smoke_3.swf
Как сделать что-нибудь подобное...
Поделитесь уроком плиз... =)
Эх, народ нонче пошёл не пуганный декомпилером:)...
Спокойенько бы всё это дельце "заграббил"... и таскал от туда код...
А если вместо радиальных кружочков сделать битмап альфеный (фотошопное облако) и при движении его вращать, то будет вообще зашибись. Я так облака делал - выглядит ох-но. Правда тормоза были такие... 2-5 fps не больше показывало :((
Уж правильней тогда было бы сделать облако во Flash'е... разблурить можно все что угодно в пинципе... и без участия битмапа... менее весомо будет...
> Эх, народ нонче пошёл не пуганный декомпилером
А чего его бояться-то? К тому же декомпилер был практически всегда...
Меня до сих пор удивляет народ, который решает проблему закрытости кода HTML =))
Будто бы там невероятные открытия какие-то делают =)))
1. Кому надо тот уже давно посмотрел что там и как...
2. тупо копировать то, что уже сделано кем-то для других целей... в моей задаче нужен дым, но немного другой (угол нужно поменять наклона + интенсивность) поэтому я и хочу разобраться как делать... а не тупо брать заготовку...
К тому же заготовка не работает в MClip'е... в главной сцене работает при этом нормально...
Заходишь сюда (www.actionscript.org) и ищеш "steem" или "steam" в разделе movies/actionscript.
Интересно, каким это образом Steam, когда мне нужен Smoke =)
function createSmoke () {
mc = attachMovie ("smoke","smoke" + (++d),d)
mc._x = Stage.width / 2
mc._y = Stage.height
mc._alpha = 0
mc._xscale = Math.random() * 70
mc._yscale = Math.random() * 70
mc.vx = 0
mc.vy = Math.random() * 5 + 5
mc.isFadingIn = true
mc.fadeInRate = Math.random() * 5 + 5
mc.fadeOutRate = Math.random() * 5 + 5
mc.fadeInGoal = Math.random() * 50 + 50
mc.XscaleRate = Math.random() * 5 + 5
mc.YscaleRate = Math.random() * 5 + 5
mc.scaleGoal = Math.random() * 80 + 20
mc.onEnterFrame = smoke
}
function smoke () {
this.vx = this.vx + vwind
this._x = this._x + this.vx
this._y = this._y - this.vy
if (this.isFadingIn) {
this._alpha = this._alpha + this.fadeInRate
this._alpha >= this.fadeInGoal ? (this.isFadingIn = false) : null
} else {
this._alpha = this._alpha - this.fadeOutRate
this._alpha <= 0 ? undefined undefined : null
}
this._rotation = Math.atan2(this.vy,this.vx) * 180 / Math.PI
this._xscale = this._xscale + this.XscaleRate
this._yscale = this._yscale + this.YscaleRate
}
function createFire () {
mc = attachMovie ("fire" + random(2),"fire" + (++d),d)
mc._alpha = Math.random() * 100
mc._x = Stage.width / 2
mc._y = Stage.height
mc._xscale = mc._yscale = Math.random() * 50 + 30
mc.vx = 0
mc.tx = mc._x + Math.random() * 20 - 10
mc.vy = Math.random() * 5 + 12
mc.scaleIn = true
mc.scaleRate = Math.random() * 5 + 7
mc.scaleGoal = Math.random() * 50 + 50
mc.onEnterFrame = fire
}
function fire () {
this.tx = this.tx + vwind * 8
this.vx = this.vx + (this.tx - this._x) * k
this._x = this._x + this.vx
this._y = this._y - (this.vy = this.vy - g)
this._rotation = Math.atan2(this.vy,this.vx) * 180 / Math.PI
this._xscale = this._xscale + this.scaleRate
this._yscale = this._yscale + this.scaleRate
if (this.scaleIn) {
if (this._xscale >= this.scaleGoal) {
this.scaleIn = false
this.scaleRate = this.scaleRate * -1
}
}
else if (this._xscale <= 0) {
removeMovieClip(this)
}
}
setInterval (createSmoke,20)
setInterval (createFire,0)
setProperty ("",_quality,"LOW")
vwind = -0.3
g = 0.8
k = 0.1
CREDO
Спасибо за пример =)
В коде не было необходимости... он у меня есть... уже давно расковырял этот дым... Только вот не знаю как его запихнуть в МСlip... запихнул, а он не работает =))
А строка this._alpha <= 0 ? undefined undefined : null
выдает ошибку... =)
Код пихается в первый кадр рута ... а вообще для начала не мешалобы с азами разобраться, что бы не задавать глупых вопросов ...
В чем конкретно заключается глупость моих вопросов?
с какими азами мне необходимо разобраться? =/
Тот пример, что я показал в первом посте этого топика действительно содержит код в первом и единственном кадре рута...
Но мне нужен дым, который бы запихивался в мувик...
Если никто кроме CREDO не может помочь примерами закрывайте тему... достойнее дыма в моем примере я пока не встречал... =(
В том то и глупость, что не можешь сделать всё тоже только для мувика просто поменяв пути ....
KUZEN
Гатство в том, что я могу все без понимания сделать... тупо скопировать, поменять пути и готово...
Но я хочу понять что и как... =)
+ может быть есть примеры каких других дымов... Хотя принцип одинаковый у всех...
Ладно... это флуд уже пошел...
Придется разбираться с тем, что есть... =(
Скажите только как поменять угол движения дымных клубов =)
чтобы двигались по дуге, а не прямо вверх...
sergwizard
05.03.2006, 04:20
DCat, посмотри этот пример.
Да в том то и дело что я предлогаю тебе для начало понять азы , а потом уже лезть в дым ... ладно замяли дело твоё, каждый поступает так как считает нужным ....
sergwizard Спасибище... это почти то, что мне нужно =)
KUZEN Азы чего? =/
Не понимаю чего азы мне нужно понять?
Да азы флеша ... покупаем книжку для чайников и читаем всё подряд, а не залезаем чёрт знает куда поковырявшись с флешом пару дней ...
Ваапше-та уж как 2 года как ковыряюсь =)
Не всем же быть мега-программерами AS, чтобы разобираться с дымом... =))
australian incognito
06.03.2006, 05:51
Привет!
Вот нашел в своей коллекции. А вообще на flashkit.com их еще больше.
За 2 года не разобраться с путями ... мдя ... неверное два года , но раз в году )))
australian incognito Спасибо Клевый огонь... только дыма как-то там нет =)
KUZEN
Такое чувство, будто бы ты сейчас пытаешься измерить кой-чего, а мне это вовсе не нужно... это никому не помогает и тебе не поможет тоже... Крутизной мы можем в других темах помериться... в дизайне например... Там я более компитентен... А здесь я прошу совета профов...
Если у меня не было необходимости такие вещи делать программно, и разбираться со всем подряд тупо нет времени, то это вовсе не обозначает что я глуп...
Если ты так хорошо знаешь предмет, то почему бы не помочь? Я же не прошу тебя писать готовый к употреблению код... если есть примеры, я бы хотел на них взглянуть - нет, так нет...
А смысла разводить флуд, а тем более кого-то обвинять в непрофессионализме не вижу... Это ничего никому не дает...
Жень Шень
06.03.2006, 11:50
Привет!
А такой дым подойдет?
Написан для урока физики по теме "Удельная теплота сгорания на примере дров и каменного угля". Где какой дым, надеюсь, ясно.
Исходник великоват, поэтому "красоту" убрал.
Спасибо... =)
Интересный дым...
Подойдет =)
Уже целая коллекция их собралась =)
australian incognito Спасибо Клевый огонь... только дыма как-то там нет =)
KUZEN
Такое чувство, будто бы ты сейчас пытаешься измерить кой-чего, а мне это вовсе не нужно... это никому не помогает и тебе не поможет тоже... Крутизной мы можем в других темах помериться... в дизайне например... Там я более компитентен... А здесь я прошу совета профов...
Если у меня не было необходимости такие вещи делать программно, и разбираться со всем подряд тупо нет времени, то это вовсе не обозначает что я глуп...
Если ты так хорошо знаешь предмет, то почему бы не помочь? Я же не прошу тебя писать готовый к употреблению код... если есть примеры, я бы хотел на них взглянуть - нет, так нет...
А смысла разводить флуд, а тем более кого-то обвинять в непрофессионализме не вижу... Это ничего никому не дает...
Да никто не обвинял тебя в непрофессионализме и тягаться я ни в чём с тобой не собираюсь ... всё закончили этот бред ...
Lihachevich
06.03.2006, 19:34
Люди, не дым а загляденье, только тормозит сильно.
А что если попробовать сделать подругому, попроще. Своткай как нить дым, нареж из облачков дыма много фрагментов, определи за каким облаком какие могут появлятся и сделай рандомное по списку их появление. Конечно тут тоже потребуется сделать функцию их движения (Помоему рандом плюс синус плюс направление подойдет)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.