Fork me on GitHub
Not signed in (Sign In)

Welcome, Guest

Want to take part in these discussions? Sign in if you have an account, or apply for one below

    • CommentAuthorKamalesh
    • CommentTimeSep 10th 2009
     
    I wrote a code for fire works. It appears to be correct, but don't display any fireworks when compile. Could you please help me to understand the problem

    var holder:DisplayObject3D;
    holder = new DisplayObject3D();
    holder.z = 10;

    bfx = new BitmapEffectLayer( viewport3D, VIDEO_WIDTH, VIDEO_HEIGHT );
    bfx.addEffect( new BitmapLayerEffect( new BlurFilter( 2, 2, 1 ) ) );
    bfx.addEffect( new BitmapLayerEffect( new ColorMatrixFilter( [ 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0.9,0 ] ) ) );


    viewport3D.containerSprite.addLayer( bfx );
    pixels = new Pixels( bfx );
    bfx.addDisplayObject3D( pixels );
    holder.addChild( pixels );

    emitter = new SphereBang(new Point3D( 0, 0, 0)); // Start emitter at a height
    flintRenderer = new PV3DPixelRenderer( pixels ); // render particles with pixels
    flintRenderer.addEmitter( emitter ); // Render the particles emitted
    emitter.start();
    flarBaseNode.addChild(holder);

    addChild (viewport3D);
    • CommentAuthordarkcode
    • CommentTimeOct 8th 2009
     
    try this
    package
    {
    import flash.events.Event;
    import flash.filters.BlurFilter;
    import org.flintparticles.common.actions.Age;
    import org.flintparticles.common.actions.TargetColor;
    import org.flintparticles.common.counters.Blast;
    import org.flintparticles.common.counters.Steady;
    import org.flintparticles.common.energyEasing.Quadratic;
    import org.flintparticles.common.events.EmitterEvent;
    import org.flintparticles.common.events.ParticleEvent;
    import org.flintparticles.common.initializers.ColorInit;
    import org.flintparticles.common.initializers.Lifetime;
    import org.flintparticles.threeD.actions.Accelerate;
    import org.flintparticles.threeD.actions.LinearDrag;
    import org.flintparticles.threeD.actions.Move;
    import org.flintparticles.threeD.actions.RandomDrift;
    import org.flintparticles.threeD.emitters.Emitter3D;
    import org.flintparticles.threeD.geom.Vector3D;
    import org.flintparticles.threeD.initializers.Position;
    import org.flintparticles.threeD.initializers.Velocity;
    import org.flintparticles.threeD.papervision3d.PV3DPixelRenderer;
    import org.flintparticles.threeD.particles.Particle3D;
    import org.flintparticles.threeD.zones.ConeZone;
    import org.flintparticles.threeD.zones.PointZone;
    import org.flintparticles.threeD.zones.SphereZone;
    import org.papervision3d.core.effects.BitmapLayerEffect;
    import org.papervision3d.core.geom.Pixels;
    import org.papervision3d.view.BasicView;
    import org.papervision3d.view.layer.BitmapEffectLayer;

    [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")]
    public class FlintPixels extends BasicView
    {
    private var emitter:Emitter3D;
    private var flintRenderer:PV3DPixelRenderer;
    private var bitmapEffectLayer:BitmapEffectLayer;
    private var pixels:Pixels;
    public function FlintPixels()
    {
    camera.z = -300;
    setupPixels();
    setupEmitter();
    setupFlintRenderer();
    emitter.start();
    startRendering();
    }
    private function setupPixels():void
    {
    bitmapEffectLayer = new BitmapEffectLayer(viewport);
    viewport.containerSprite.addLayer( bitmapEffectLayer );
    pixels = new Pixels(bitmapEffectLayer);
    bitmapEffectLayer.addDisplayObject3D(pixels);
    scene.addChild(pixels);
    bitmapEffectLayer.addEffect(new BitmapLayerEffect(new BlurFilter(1.5, 1.5, 1)));
    }
    private function setupEmitter():void
    {
    emitter = new Emitter3D();
    emitter.counter = new Steady( 0.4 );
    emitter.addInitializer(new ColorInit(0xffcc0000, 0xffffffff));
    emitter.addInitializer( new Velocity( new ConeZone( Vector3D.ZERO, Vector3D.AXISY, 1, 350, 330 ) ) );
    emitter.addAction( new Accelerate( new Vector3D( 0, -500, 0 ) ) );
    emitter.addAction( new LinearDrag( 0.5 ) );
    emitter.addAction( new RandomDrift( 200, 200, 200 ) );
    emitter.addInitializer(new Lifetime(1));
    emitter.addEventListener( ParticleEvent.PARTICLE_DEAD, explosion, false, 0, true );
    emitter.addAction(new Move());
    emitter.addAction(new Age());
    }
    private function explosion(event:ParticleEvent):void
    {
    var explode:Emitter3D = new Emitter3D();
    explode.counter = new Blast (250);
    explode.addInitializer(new ColorInit(0xffffffff, 0xffffffff));
    explode.addInitializer( new Position( new PointZone( Particle3D( event.particle ).position)));
    explode.addInitializer( new Velocity( new SphereZone( Vector3D.ZERO, 50,50 ) ) );
    explode.addInitializer( new Lifetime( 2 ) );
    explode.addAction( new Age( Quadratic.easeIn ) );
    explode.addAction( new Move() );
    explode.addAction( new Accelerate( new Vector3D( 0, -10, 0 ) ) );
    explode.addAction( new LinearDrag( 0.5 ) );
    explode.addAction( new TargetColor(0xffFF0000, 1) );
    explode.addEventListener( EmitterEvent.EMITTER_EMPTY, explosion_emisor_Vacio, false, 0, true );
    flintRenderer.addEmitter( explode );
    explode.start();
    }
    private function explosion_emisor_Vacio(event:EmitterEvent):void
    {
    Emitter3D( event.target ).removeEventListener( EmitterEvent.EMITTER_EMPTY, explosion_emisor_Vacio );
    flintRenderer.removeEmitter( Emitter3D( event.target ) );
    }
    private function setupFlintRenderer():void
    {
    flintRenderer = new PV3DPixelRenderer(pixels);
    flintRenderer.addEmitter(emitter);
    }
    override protected function onRenderTick(event:Event = null):void
    {
    pixels.rotationY += (viewport.containerSprite.mouseX - pixels.rotationY) * .3;
    pixels.rotationX += (viewport.containerSprite.mouseY - pixels.rotationX) * .3;
    renderer.renderScene(scene, camera, viewport);
    }
    }
    }