查看: 1948|回复: 0
打印 上一主题 下一主题

[Flare3D] Flare3D粒子效果 -- 火焰

[复制链接]

435

主题

2

听众

6371

积分

高级设计师

Rank: 6Rank: 6

纳金币
6372
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-8-31 08:53:24 |只看该作者 |倒序浏览

    var b:* = new _Img();

     
    var pmarticleMaterial3D = new ParticleMaterial3D();

     
    pm.filters.push(new TextureFilter(new Texture3D(b.bitmapData)));

     
    pm.filters.push(new ColorParticleFilter([0xffffff, 0xffff00, 0xff0000, 0x000000], [1, .5, .2, 0]));

     
    pm.build();

     
    var fireEmiterarticleEmiter3D = new ParticleEmiter3D("", pm, new FireParticle());

     
    fireEmiter.particlesLife = 40;

     
    fireEmiter.emitParticlesPerFrame = 15;

     
    _view.scene.addChild(fireEmiter);




    package

     
    {

     
            import flare.core.*;

     
            import flash.geom.*;

     
            

     
            /**

     
             * ...

     
             * @author Ariel Nehmad

     
             */

     
            public class FireParticle extends Particle3D

     
            {

     
                    private var gravity:Number;

     
                    private var velocity:Vector3D = new Vector3D();

     
                    private var rotationVelocity:Number = 0;

     
                    private var sizeVelocity:Number;

     
                    

     
                    override public function clone()article3D

     
                    {

     
                            // return a new custom particle.

     
                            // the ParticleEmiter3D will clone all particles he needs.

     
                            return new FireParticle();

     
                    }

     
                    

     
                    override public function init( emiterarticleEmiter3D ):void

     
                    {

     
                            super.init( emiter );

     
                           

     
                            /* all particle initialization here. */

     
                           

     
                            super.x = Math.random() * 10.0 - 5.0;

     
                            super.y = Math.random() * 10.0 - 5.0;

     
                            super.z = Math.random() * 10.0 - 5.0;

     
                            super.sizeX = 5;

     
                            super.sizeY = 5;

     
                           

     
                           

     
                            velocity.x = Math.random() * 1.0 - 0.5;

     
                            velocity.y = Math.random() + 0.5;

     
                            velocity.z = Math.random() * 1.0 - 0.5;

     
                           

     
                            if ( emiter.useGlobalSpace ) velocity = emiter.localToGlobalVector( velocity );

     
                           

     
                            velocity.scaleBy( 2 );

     
                           

     
                            rotationVelocity = Math.random() * 0.3 // - 2.5

     
                            sizeVelocity = Math.random() * 0.1 + 0.15;

     
                    }

     
                    

     
                    override public function update( time:Number ):void

     
                    {

     
                            /* update the particle. */

     
                           

     
                           

     
                            x += velocity.x;

     
                            y += velocity.y;

     
                            z += velocity.z;

     
                           

     
                            if ( y < 0 ) y = 0;

     
                           

     
                            sizeX += sizeVelocity;

     
                            sizeY += sizeVelocity;

     
                            rotation += rotationVelocity;

     
                    }

     
            }

     
    }




分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-1-11 11:00 , Processed in 0.067865 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部