рдЗрд╕ рднрд╛рдЧ рдореЗрдВ:
- рд╢реВрдЯрд░ рдХреА рдореМрдд рдЬреЛрдбрд╝реЗрдВ (рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡рд┐рд╕реНрдлреЛрдЯреЛрдВ рдиреЗ рдорд╛рд░ рдбрд╛рд▓рд╛)
- рдПрдорд┐рдЯрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ - рдореБрдЭреЗ рдорд╣рд╛рдХрд╛рд╡реНрдп рдЪрд╛рд╣рд┐рдП
рд╢реВрдЯрд░ рдХреА рдореМрдд рдЬреЛрдбрд╝реЗрдВ (рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡рд┐рд╕реНрдлреЛрдЯреЛрдВ рдиреЗ рдорд╛рд░ рдбрд╛рд▓рд╛)
"рддреАрд░ рдХреЛ рдорд╛рд░рдиреЗ" рдХреЗ рд▓рд┐рдП, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред рдореИрдВ рд╕рдмрд╕реЗ рдЖрдо рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реВрдВрдЧрд╛ - рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдорд╛рддреНрд░рд╛" рдХреЛ рд╢реВрдиреНрдп рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдХреБрдЫ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - ( HealthInitializer )ред
рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, HealthInitializer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд░ "Health" Particle.dEDIA рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
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; } } }
рдХрдг рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рдЖрдк рдЗрд╕реЗ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди:
- рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐ рд╢реБрд░реВ рдХрд░реЛ
- рдкреИрд░реЗрдВрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ MainWaylines_2.explosion
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); } } }
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд┐рд╕рд╕реЗ рдШрд╛рдпрд▓ рд╣реБрдЖ, рдФрд░ рдЙрд╕рдиреЗ рдХрд┐рд╕рдХреЛ рдорд╛рд░рд╛ред рдЖрдк
MainWaylines_3.explosion () рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:
/* * - , */ if(particle.dictionary["health"] <= 0) { // "" - addBlot(particle); // particle.isDead = true; } else { // "" - Arrow(particle.image).color = getArrayColorByHealth(particle.dictionary["health"]); }
рдПрдорд┐рдЯрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ - рдореБрдЭреЗ рдорд╣рд╛рдХрд╛рд╡реНрдп рдЪрд╛рд╣рд┐рдП
рдХрдг рдкреБрд╕реНрддрдХрд╛рд▓рдп , рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднреМрддрд┐рдХ рдХрд╛рдиреВрдиреЛрдВ (рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг ...) рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ - рд╕реВрдХреНрд╖реНрдо рдорд╛рдорд▓рд╛, рдореЗрд░реЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ (рддрдХрдиреАрдХреА рдирд╣реАрдВ)ред рд╣рд╛рдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдРрдб-рдСрди рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ - рдЬреЛ рдмреЗрд╣рдж рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИ (рдореИрдВ рдЦрд░реАрджреЗ рдЧрдП рдмрдЪреНрдЪреЛрдВ рдХреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреА рддрд░рд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рдЦреБрдж рдХреЛ рдЦрд░рд╛рдж рдкрд░ рдкреАрд╕ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реВрдВ)ред
рдЗрд╕рд▓рд┐рдП:
- рдореИрдВ рд╕рд┐рд░реНрдл рдЙрддрдирд╛ рд╣реА рдХрдо рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рддрдирд╛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдерд╛ (100 рдмрд╛рд░)
- рддреНрд╡рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ (10 рдЧреБрдирд╛) рдирдИ рдиреНрдпреВрдирддрдорддрд╛ (7, 6000)
- "рдПрдВрдЯреАрд╡рд┐рдЯреА" (10 рдмрд╛рд░) рдирдИ рдПрдВрдЯреАрдЧреНрд░реИрд╡рд┐рдЯреА (emitterWaylinesForMonsterArrows, -4000000) рдХреА рд╢рдХреНрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐
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 }
рдирддреАрдЬрддрди, рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рдХреВрд▓ рдиреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдЪрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ - рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ (рдпрджрд┐ рдпрд╣ goblins рдпрд╛ рд▓рд╛рд╢ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрдгреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдмрдбрд╝реЗ (рдЫреЛрдЯреЗ) рдХреА рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреНрд░рдкрд▓реЗрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ - рдХрдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреАрдбрд╝ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрддред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЯреЙрд╡рд░ рдбрд┐рдлреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЙрдбрд▓ (MVC) рд╣реИред 60 рдПрдлрдкреАрдПрд╕, рдХрдгреЛрдВ рдХреЗ рдРрд╕реЗ рдШрдирддреНрд╡ рдХреЗ рд╕рд╛рде, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ ... рд▓реЗрдХрд┐рди - рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд╣реИ (рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ), рдПрдХ рдореБрдлреНрдд рд░реЗрдВрдбрд░ рдкреЗрдВрдЪ (рд╕реНрдЯрд╛рд░реНрд▓рд┐рдВрдЧ, рдЕрд╡реЗ 3 рдбреА)
рдХреЛрдб Google рдХреЛрдб рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдХрдХреНрд╖рд╛ MainWaylines_3
рдкреБрдирд╢реНрдЪ: рд╕рдордп рд╣реЛрдЧрд╛, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд░реЗрдВрдбрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛