Example #1
0
 /// <summary>
 /// Init Some default effects
 /// </summary>
 static ParticleProps()
 {
     {
         Effect1.ColorBegin        = (0.2f, 0.5f, 0.8f, 1.0f);
         Effect1.ColorEnd          = (0.8f, 0.5f, 0.2f, 1.0f);
         Effect1.LifeTime          = 3.0f;
         Effect1.SizeVariation     = 5.0f;
         Effect1.SizeBegin         = 20.0f;
         Effect1.SizeEnd           = 0.0f;
         Effect1.Velocity          = new vec2(10.0f, 10.0f);
         Effect1.VelocityVariation = new vec2(1.0f, 1.0f);
         Effect1.Gravity           = 100.0f;
     }
     {
         Effect2                   = Effect1;
         Effect2.LifeTime          = 1.0f;
         Effect2.VelocityVariation = new vec2(50.0f, 50.0f);
         Effect2.ColorBegin        = (0.9f, 0.3f, 0.2f, 1.0f);
         Effect2.ColorBegin        = (0.8f, 0.2f, 0.1f, 1.0f);
     }
 }
Example #2
0
        public void Emit(ParticleProps particleProps)
        {
            m_ParticlesPool[m_PoolIndex].Active   = true;
            m_ParticlesPool[m_PoolIndex].Position = particleProps.Position;
            m_ParticlesPool[m_PoolIndex].Rotation = RandomTable.RandomFloat() * 5.0f * MathHelper.Pi;
            m_ParticlesPool[m_PoolIndex].Gravity  = particleProps.Gravity;
            // Velocity
            m_ParticlesPool[m_PoolIndex].Velocity    = particleProps.Velocity;
            m_ParticlesPool[m_PoolIndex].Velocity.x += particleProps.VelocityVariation.x * (RandomTable.RandomFloat() - 0.5f);
            m_ParticlesPool[m_PoolIndex].Velocity.y += particleProps.VelocityVariation.y * (RandomTable.RandomFloat() - 0.5f);

            // Color
            m_ParticlesPool[m_PoolIndex].ColorBegin = particleProps.ColorBegin;
            m_ParticlesPool[m_PoolIndex].ColorEnd   = particleProps.ColorEnd;

            m_ParticlesPool[m_PoolIndex].LifeTime      = particleProps.LifeTime;
            m_ParticlesPool[m_PoolIndex].LifeRemaining = particleProps.LifeTime;
            m_ParticlesPool[m_PoolIndex].SizeBegin     = particleProps.SizeBegin + particleProps.SizeVariation * (RandomTable.RandomFloat() - 0.5f);
            m_ParticlesPool[m_PoolIndex].SizeEnd       = particleProps.SizeEnd;

            m_ParticlesPool[m_PoolIndex].axisRot = new vec3((RandomTable.RandomInt() % 2), (RandomTable.RandomInt() * 0), (1 + RandomTable.RandomInt() % 2));

            m_PoolIndex = ++m_PoolIndex % m_ParticlesPool.Length;
        }