コード例 #1
0
        /// <summary>
        /// When this method is called a new particle will be added to the emitter set and NewParticle() will be called to change the
        /// initial parameters of the particle if needed.
        /// </summary>
        protected void Emit()
        {
            XNACS1Particle particle = new XNACS1Particle(m_Center, m_DefaultSize, m_DefaultLife, m_DefaultTexture);

            particle.m_TextureColor = m_DefaultColor;
            particle.RemoveFromAutoDrawSet();
            m_ParticleList.Add(particle);
            NewParticle(particle);
        }
コード例 #2
0
 protected override void NewParticle(XNACS1Particle particle)
 {
     float theta = XNACS1Base.RandomFloat(0, (float)(2 * Math.PI));
     particle.CenterX = CenterX;
     particle.CenterY = CenterY;
     Vector2 randomVelocity = new Vector2(XNACS1Base.RandomFloat(-1, 1), XNACS1Base.RandomFloat(-1, 1));
     randomVelocity *= 0.2f;
     particle.Velocity = randomVelocity;
     particle.ShouldTravel = true;
 }
コード例 #3
0
            /// <summary>
            /// Creates a new particle with a random start location, and verticle velocity
            /// </summary>1
            /// <param name="newParticle"></param>
            protected override void NewParticle(XNACS1Particle newParticle)
            {
                newParticle.CenterX += XNACS1Base.RandomFloat(-(m_FireWidth / 2), (m_FireWidth / 2));
                newParticle.CenterY += XNACS1Base.RandomFloat(-1, 1);
                Vector2 velocity = m_FireDirection * XNACS1Base.RandomFloat(0, 1);


                velocity                *= m_Speed;
                newParticle.Velocity     = velocity;
                newParticle.ShouldTravel = true;
            }
コード例 #4
0
            /// <summary>
            /// Overloaded NewParticle Method, gives explosion particles initial velocity and sets
            /// ShouldTravel = true.
            /// </summary>
            /// <param name="newParticle"></param>
            protected override void NewParticle(XNACS1Particle newParticle)
            {
                newParticle.CenterX += XNACS1Base.RandomFloat(-m_Radius / 10, m_Radius / 10);
                newParticle.CenterY += XNACS1Base.RandomFloat(-m_Radius / 10, m_Radius / 10);
                Vector2 randomVelocity = new Vector2(XNACS1Base.RandomFloat(-1, 1), XNACS1Base.RandomFloat(-1, 1));

                randomVelocity.Normalize();
                randomVelocity          *= m_ExplodeSpeed * XNACS1Base.RandomFloat(.5f, 1);
                newParticle.Velocity     = randomVelocity;
                newParticle.ShouldTravel = true;
            }
コード例 #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="newParticle"></param>
 protected override void NewParticle(XNACS1Particle newParticle)
 {
     if (TailTravelMode != ParticleTravelMode.Linear)
     {
         newParticle.TravelMode            = TailTravelMode;
         newParticle.Velocity              = m_Center - m_LastCenter;
         newParticle.Velocity              = Vector2.Normalize(newParticle.Velocity) / 100;
         newParticle.DisplacementAmplitude = .5f;
         newParticle.DisplacementFrequency = .3f;
         newParticle.ShouldTravel          = true;
     }
 }
コード例 #6
0
            /// <summary>
            /// Overloaded UpdateParticle to cause particles to fade as they die.
            /// </summary>
            /// <param name="particle"></param>
            protected override void UpdateParticle(XNACS1Particle particle)
            {
                int temp = (255 * particle.Life) / m_DefaultLife;

                if (temp > 255)
                {
                    temp = 255;
                }
                else if (temp < 0)
                {
                    temp = 0;
                }
                particle.m_TextureColor.A = (byte)temp;
            }
コード例 #7
0
 protected override void UpdateParticle(XNACS1Particle particle)
 {
     int temp = (255 * particle.Life) / InitialLife;
     if (temp > 255)
     {
         temp = 255;
     }
     else if (temp < 0)
     {
         temp = 0;
     }
     Color tempColor = particle.TextureTintColor;
     tempColor.A = (byte)temp;
     particle.TextureTintColor = tempColor;
 }
コード例 #8
0
 /// <summary>
 /// This method is called by the Emit method whenever a particle is created.  By default
 /// particles are created at the Center location of the emitter with InitialLife, InitialSize, DefaultTexture, and DefaultColor.
 /// Newly created particles also have shouldtravel set to false and velocity = 0.
 /// By overloading this method you can change these properties to make particles emit in different ways.
 /// <param name="newParticle">Particle that has just been created and added to the set.</param>
 /// <seealso cref="AutoEmitEnabled"/>
 /// <seealso cref="InitialLife"/>
 /// <seealso cref="InitialSize"/>
 /// <seealso cref="DefaultTexture"/>
 /// <seealso cref="DefaultColor"/>
 /// <seealso cref="EmitFrequency"/>
 /// <seealso cref="Emit"/>
 /// <seealso cref="UpdateParticle"/>
 /// </summary>
 protected virtual void NewParticle(XNACS1Particle newParticle)
 {
 }
コード例 #9
0
 /// <summary>
 /// This is where you define the behavior of particles in the emitter.  This method
 /// will be called once a tick for each particle if the emitter is in the Emitter
 /// Update Set.
 /// This is an abstract method and must be overloaded.
 /// <seealso cref="AddEmitterToUpdateSet"/>
 /// <seealso cref="RemoveEmitterFromUpdateSet"/>
 /// </summary>
 /// <param name="particle">The particle being updated</param>
 protected abstract void UpdateParticle(XNACS1Particle particle);
コード例 #10
0
 /// <summary>
 /// Removes a particle from the emitter list.
 /// </summary>
 /// <param name="particle">Particle to remove.</param>
 protected void KillParticle(XNACS1Particle particle)
 {
     m_ParticleList.Remove(particle);
 }
コード例 #11
0
 /// <summary>
 /// This is where you define the behavior of particles in the emitter.  This method
 /// will be called once a tick for each particle if the emitter is in the Emitter
 /// Update Set.
 /// This is an abstract method and must be overloaded.
 /// <seealso cref="AddEmitterToUpdateSet"/>
 /// <seealso cref="RemoveEmitterFromUpdateSet"/>
 /// </summary>
 /// <param name="particle">The particle being updated</param>
 protected abstract void UpdateParticle(XNACS1Particle particle);
コード例 #12
0
 /// <summary>
 /// This method is called by the Emit method whenever a particle is created.  By default
 /// particles are created at the Center location of the emitter with InitialLife, InitialSize, DefaultTexture, and DefaultColor.
 /// Newly created particles also have shouldtravel set to false and velocity = 0.
 /// By overloading this method you can change these properties to make particles emit in different ways.
 /// <param name="newParticle">Particle that has just been created and added to the set.</param>
 /// <seealso cref="AutoEmitEnabled"/>
 /// <seealso cref="InitialLife"/>
 /// <seealso cref="InitialSize"/>
 /// <seealso cref="DefaultTexture"/>
 /// <seealso cref="DefaultColor"/>
 /// <seealso cref="EmitFrequency"/>
 /// <seealso cref="Emit"/>
 /// <seealso cref="UpdateParticle"/>
 /// </summary>
 protected virtual void NewParticle(XNACS1Particle newParticle)
 {
 }
コード例 #13
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="newParticle"></param>
 protected override void NewParticle(XNACS1Particle newParticle)
 {
     if (TailTravelMode != ParticleTravelMode.Linear) {
         newParticle.TravelMode = TailTravelMode;
         newParticle.Velocity = m_Center - m_LastCenter;
         newParticle.Velocity = Vector2.Normalize(newParticle.Velocity) / 100;
         newParticle.DisplacementAmplitude = .5f;
         newParticle.DisplacementFrequency = .3f;
         newParticle.ShouldTravel = true;
     }
 }
コード例 #14
0
 /// <summary>
 /// When this method is called a new particle will be added to the emitter set and NewParticle() will be called to change the
 /// initial parameters of the particle if needed.
 /// </summary>
 protected void Emit()
 {
     XNACS1Particle particle = new XNACS1Particle(m_Center, m_DefaultSize, m_DefaultLife, m_DefaultTexture);
     particle.m_TextureColor = m_DefaultColor;
     particle.RemoveFromAutoDrawSet();
     m_ParticleList.Add(particle);
     NewParticle(particle);
 }
コード例 #15
0
 /// <summary>
 /// Overloaded NewParticle Method, gives explosion particles initial velocity and sets
 /// ShouldTravel = true.
 /// </summary>
 /// <param name="newParticle"></param>
 protected override void NewParticle(XNACS1Particle newParticle)
 {
     newParticle.CenterX += XNACS1Base.RandomFloat(-m_Radius / 10, m_Radius / 10);
     newParticle.CenterY += XNACS1Base.RandomFloat(-m_Radius / 10, m_Radius / 10);
     Vector2 randomVelocity = new Vector2(XNACS1Base.RandomFloat(-1, 1), XNACS1Base.RandomFloat(-1, 1));
     randomVelocity.Normalize();
     randomVelocity *= m_ExplodeSpeed * XNACS1Base.RandomFloat(.5f,1);
     newParticle.Velocity = randomVelocity;
     newParticle.ShouldTravel = true;
 }
コード例 #16
0
 /// <summary>
 /// Overloaded UpdateParticle to cause particles to fade as they die.
 /// </summary>
 /// <param name="particle"></param>
 protected override void UpdateParticle(XNACS1Particle particle)
 {
     int temp = (255 * particle.Life) / m_DefaultLife;
     if (temp > 255) temp = 255;
     else if (temp < 0) temp = 0;
     particle.m_TextureColor.A = (byte)temp;
 }
コード例 #17
0
 /// <summary>
 /// Removes a particle from the emitter list.
 /// </summary>
 /// <param name="particle">Particle to remove.</param>
 protected void KillParticle(XNACS1Particle particle)
 {
     m_ParticleList.Remove(particle);
 }
コード例 #18
0
            /// <summary>
            /// Creates a new particle with a random start location, and verticle velocity
            /// </summary>1
            /// <param name="newParticle"></param>
            protected override void NewParticle(XNACS1Particle newParticle)
            {
                newParticle.CenterX += XNACS1Base.RandomFloat(-(m_FireWidth / 2), (m_FireWidth / 2));
                newParticle.CenterY += XNACS1Base.RandomFloat(-1, 1);
                Vector2 velocity = m_FireDirection * XNACS1Base.RandomFloat(0, 1);

                velocity *= m_Speed;
                newParticle.Velocity = velocity;
                newParticle.ShouldTravel = true;
            }