package waylines.initializers { import org.flintparticles.common.particles.Particle; import org.flintparticles.common.emitters.Emitter; import org.flintparticles.common.initializers.InitializerBase; public class HealthInitializer extends InitializerBase { private var health:int; public function HealthInitializer(health:int=100) { this.health = health; } override public function initialize( emitter : Emitter, particle : Particle ) : void { particle.dictionary["health"] = health; } } }
override protected function setup(e:Event=null):void { super.setup(e); // " " - emitterWaylines.addInitializer( new HealthInitializer(100)); }
/* * ( - ) * 1. explosion "" emitterWaylines emitterExplosion * 2. . * , "" * - , */ override protected function explosion(e:MouseEvent):void { /* * - emitterWaylines */ super.explosion(e); /* * copy-paste * , */ ... var particles:Array = emitterExplosion.particlesArray; var length:int = particles.length; for(var r:int=0; r<length; r++) { ... if(Point.distance(explPoint, particlePoint) < explRadius) { particleClone = Particle2D(particles[r]); particleClone.angVelocity = -5 + Math.random() * 10; /* * " " " " - ... */ particleClone.lifetime += 1; //particleClone.age = 0; /* * ( 10 40 ) */ particleClone.dictionary["health"] -= (10 + Math.random() * 30); } } }
/* * - , */ if(particle.dictionary["health"] <= 0) { // "" - addBlot(particle); // particle.isDead = true; } else { // "" - Arrow(particle.image).color = getArrayColorByHealth(particle.dictionary["health"]); }
override protected function setup(e:Event=null):void { super.setup(e); // " " - emitterWaylines.addInitializer( new HealthInitializer(100)); /* * " " ( ) * - - .1 */ emitterWaylines.maximumFrameTime = .001; emitterWaylinesForMonsterArrows.maximumFrameTime = .001; /* * - , , * (, - , ) */ emitterWaylines.addAction( new Antigravities(emitterWaylinesForMonsterArrows, -4000000) );// 400000 emitterWaylines.addAction( new MinimumDistance( 7, 6000 ) );// 600 }
Source: https://habr.com/ru/post/221197/
All Articles