vendredi 9 mai 2008
Flint, générateur de particules
Par Trân Nguyen Ngoc, vendredi 9 mai 2008 à 03:48 :: programmation
Un exemple :
Cliquez sur l'image pour lancer le flash ou ici, puis déplacer la souris pour repousser les particules
Le site de Flint.
Le code
package {
import flash.display.Sprite;
import flash.geom.Point;
import flash.filters.BlurFilter;
import flash.geom.Rectangle;
import org.flintparticles.actions.*;
import org.flintparticles.counters.*;
import org.flintparticles.displayObjects.*;
import org.flintparticles.emitters.Emitter;
import org.flintparticles.initializers.*;
import org.flintparticles.renderers.*;
import org.flintparticles.zones.*;
import org.flintparticles.activities.*;
public class Fountain extends Sprite {
public function Fountain() {
var emitter:Emitter = new Emitter();
emitter.counter = new Steady( 30 );
emitter.addInitializer( new ImageClass( Dot, 5 ) );
emitter.addInitializer( new ColorInit( 0xFFFF33FF, 0xFFFFFF33 ) );
emitter.addInitializer( new Position( new PointZone( new Point( 0, 0 ) ) ) );
emitter.addInitializer( new Velocity( new DiscSectorZone( new Point( 0, 0 ), 260, 360, -3 * Math.PI/5, -2 * Math.PI / 5 ) ) );
emitter.addInitializer( new RotateVelocity( -4, 4 ) );
emitter.addInitializer( new Lifetime( 6 ) );
emitter.addAction( new MouseAntiGravity(200, 10) );
emitter.addAction( new Move() );
emitter.addAction( new Rotate() );
emitter.addAction( new Accelerate( 150, 150 ) );
emitter.addAction( new Age() );
emitter.addAction( new Scale( 0.1, 10 ) );
emitter.addAction( new DeathZone( new RectangleZone( -10, -10, 510, 510 ), true ) );
var renderer:BitmapRenderer = new BitmapRenderer( new Rectangle( 0, 0, 500, 500 ) );
renderer.addFilter( new BlurFilter( 2, 2, 10 ) );
emitter.renderer = renderer;
addChild( renderer );
emitter.x = 50;
emitter.y = 510;
emitter.start( );
}
}
}












