Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   дым. Максимально реалистичный... (http://www.flasher.ru/forum/showthread.php?t=76301)

veterok4 03.03.2006 09:22

Хм...
 
Цитата:

Сообщение от DCat
http://www.betaruce.com/flash_swf/smoke_3.swf
Как сделать что-нибудь подобное...
Поделитесь уроком плиз... =)


Эх, народ нонче пошёл не пуганный декомпилером:)...
Спокойенько бы всё это дельце "заграббил"... и таскал от туда код...

DCat 03.03.2006 10:07

Цитата:

Сообщение от AxelRB
А если вместо радиальных кружочков сделать битмап альфеный (фотошопное облако) и при движении его вращать, то будет вообще зашибись. Я так облака делал - выглядит ох-но. Правда тормоза были такие... 2-5 fps не больше показывало :((

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


> Эх, народ нонче пошёл не пуганный декомпилером
А чего его бояться-то? К тому же декомпилер был практически всегда...
Меня до сих пор удивляет народ, который решает проблему закрытости кода HTML =))
Будто бы там невероятные открытия какие-то делают =)))
1. Кому надо тот уже давно посмотрел что там и как...
2. тупо копировать то, что уже сделано кем-то для других целей... в моей задаче нужен дым, но немного другой (угол нужно поменять наклона + интенсивность) поэтому я и хочу разобраться как делать... а не тупо брать заготовку...
К тому же заготовка не работает в MClip'е... в главной сцене работает при этом нормально...

kayama 03.03.2006 11:09

Заходишь сюда и ищеш "steem" или "steam" в разделе movies/actionscript.

DCat 04.03.2006 16:08

Интересно, каким это образом Steam, когда мне нужен Smoke =)

CREDO 04.03.2006 18:06

Вложений: 1
вот неплохо сделанно

CREDO 04.03.2006 18:09

Код:

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


DCat 05.03.2006 01:43

CREDO
Спасибо за пример =)

В коде не было необходимости... он у меня есть... уже давно расковырял этот дым... Только вот не знаю как его запихнуть в МСlip... запихнул, а он не работает =))

А строка this._alpha <= 0 ? undefined undefined : null
выдает ошибку... =)

KUZEN 05.03.2006 01:51

Код пихается в первый кадр рута ... а вообще для начала не мешалобы с азами разобраться, что бы не задавать глупых вопросов ...

DCat 05.03.2006 02:08

В чем конкретно заключается глупость моих вопросов?
с какими азами мне необходимо разобраться? =/

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

Если никто кроме CREDO не может помочь примерами закрывайте тему... достойнее дыма в моем примере я пока не встречал... =(

KUZEN 05.03.2006 02:15

В том то и глупость, что не можешь сделать всё тоже только для мувика просто поменяв пути ....


Часовой пояс GMT +4, время: 05:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.