Welcome, Guest
Want to take part in these discussions? Sign in if you have an account, or apply for one below
-
- CommentAuthorfred
- CommentTimeJan 15th 2012
Hello, I am trying to revive the same particle at the same position where it died using TwoWay.sine for the age... so far, the particle gets a new random x and y. Thanks for your help:
fred
var myApple:Apple = new Apple();
var myMickey:Mickey = new Mickey();
var myMarlboro:Marlboro = new Marlboro();
var myNike:Nike = new Nike();
var myArray:Array = [myApple, myMickey, myMarlboro, myNike ];
renderer = new DisplayObjectRenderer();
addChild(renderer);
emitter = new Emitter2D();
renderer.addEmitter(emitter);
emitter.addInitializer( new Position( new RectangleZone( 0, 0, 1024, 768)));
emitter.addInitializer( new Lifetime(10, 20));
emitter.addAction( new Move());
emitter.addAction( new Age(TwoWay.sine));
emitter.addAction( new Fade());
var myParticles:Vector.<Particle> = Particle2DUtils.createParticles2DFromDisplayObjects( myArray );
emitter.addEventListener( ParticleEvent.PARTICLE_DEAD, revive4Particles );
emitter.addParticles( myParticles , true);
emitter.start();
private function revive4Particles( event:ParticleEvent ):void
{
event.particle.revive();
event.currentTarget.addParticle(Particle2D(event.particle), true);
} -
- CommentAuthorRichard
- CommentTimeJan 21st 2012
The second parameter in the addParticle method indicates whether the emitter's initializers should be applied to the particle being added. By setting it to true you are applying the emitter's initializers, particularly the Position initializer, to the particle which will alter its position. Try setting it to false. -
- CommentAuthorfred
- CommentTimeJan 22nd 2012
Hey Richard,
Thanks for your response. I understand that if set to true, I am applying the emitter's initializers to the particle.
I could set it to false but I need other addInitializers like Lifetime and also actions like Move, Age and Fade.
Any way to select what to apply?
Should I recreate a new emitter, pass the particule and kill the old one?
Thx again.
Fred -
- CommentAuthorfred
- CommentTimeJan 22nd 2012
SOLVED :)
Removing the position Initializer did the trick.
thx
var myApple:Apple = new Apple();
var myMickey:Mickey = new Mickey();
var myMarlboro:Marlboro = new Marlboro();
var myNike:Nike = new Nike();
var myPosition:Position;
var myArray:Array = [myApple, myMickey, myMarlboro, myNike ];
renderer = new DisplayObjectRenderer();
addChild(renderer);
emitter = new Emitter2D();
renderer.addEmitter(emitter);
myPosition = new Position(new RectangleZone( 0, 0, 1024, 768));
emitter.addInitializer( myPosition );
emitter.addInitializer( new Lifetime(10, 20));
emitter.addAction( new Move());
emitter.addAction( new Age(TwoWay.sine));
emitter.addAction( new Fade());
var myParticles:Vector.<Particle> = Particle2DUtils.createParticles2DFromDisplayObjects( myArray );
emitter.addEventListener( ParticleEvent.PARTICLE_DEAD, revive4Particles );
emitter.addParticles( myParticles , true);
emitter.start();
private function revive4Particles( event:ParticleEvent ):void
{
event.particle.revive();
emitter.removeInitializer( myPosition );
event.currentTarget.addParticle(Particle2D(event.particle), true);
}
1 to 4 of 4
