示例#1
0
        public CCParticleMeteor(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(150, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Life         = 2;
            LifeVar      = 1;
            Position     = position;
            PositionVar  = CCPoint.Zero;
            Angle        = 90;
            AngleVar     = 360;
            StartSize    = 60.0f;
            StartSizeVar = 10.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor    = new CCColor4F(0.2f, 0.4f, 0.7f, 1.0f);
            StartColorVar = new CCColor4F(0.0f, 0.0f, 0.2f, 0.1f);
            EndColor      = new CCColor4F(0.0f, 0.0f, 0.0f, 1.0f);
            EndColorVar   = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity            = new CCPoint(-200, 200);
            gravityMode.RadialAccel        = 0;
            gravityMode.RadialAccelVar     = 0;
            gravityMode.Speed              = 15;
            gravityMode.SpeedVar           = 5;
            gravityMode.TangentialAccel    = 0;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            BlendAdditive = true;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#2
0
        public CCParticleSun(CCPoint position, int num, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(num, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Life         = 1;
            LifeVar      = 0.5f;
            Position     = position;
            PositionVar  = CCPoint.Zero;
            Angle        = 90;
            AngleVar     = 360;
            StartSize    = 30.0f;
            StartSizeVar = 10.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor    = new CCColor4F(0.76f, 0.25f, 0.12f, 1.0f);
            StartColorVar = new CCColor4F();
            EndColor      = new CCColor4F(0.0f, 0.0f, 0.0f, 1.0f);
            EndColorVar   = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity        = new CCPoint(0, 0);
            gravityMode.RadialAccel    = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed          = 20;
            gravityMode.SpeedVar       = 5;
            GravityMode = gravityMode;

            BlendAdditive = true;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#3
0
        public CCParticleSpiral(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(500, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Position     = position;
            PositionVar  = CCPoint.Zero;
            Life         = 12;
            LifeVar      = 0;
            Angle        = 90;
            AngleVar     = 0;
            StartSize    = 20.0f;
            StartSizeVar = 0.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor    = new CCColor4F(0.5f, 0.5f, 0.5f, 1.0f);
            StartColorVar = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);
            EndColor      = new CCColor4F(0.5f, 0.5f, 0.5f, 1.0f);
            EndColorVar   = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity            = new CCPoint(0, 0);
            gravityMode.RadialAccel        = -380;
            gravityMode.RadialAccelVar     = 0;
            gravityMode.Speed              = 150;
            gravityMode.SpeedVar           = 0;
            gravityMode.TangentialAccel    = 45;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#4
0
        public CCParticleExplosion(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(700, emitterMode)
        {
            Duration     = 0.1f;
            Life         = 5.0f;
            LifeVar      = 2;
            Position     = new CCPoint(position);
            PositionVar  = CCPoint.Zero;
            Angle        = 90;
            AngleVar     = 360;
            StartSize    = 15.0f;
            StartSizeVar = 10.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Duration;

            StartColor    = new CCColor4F(0.7f, 0.1f, 0.2f, 1.0f);
            StartColorVar = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);
            EndColor      = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);
            EndColorVar   = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity            = new CCPoint(0, 0);
            gravityMode.RadialAccel        = 0;
            gravityMode.RadialAccelVar     = 0;
            gravityMode.Speed              = 70;
            gravityMode.SpeedVar           = 40;
            gravityMode.TangentialAccel    = 0;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#5
0
        public CCParticleSmoke(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(200, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Life         = 4;
            LifeVar      = 1;
            Position     = position;
            PositionVar  = new CCPoint(20, 0);
            Angle        = 90;
            AngleVar     = 5;
            StartSize    = 60.0f;
            StartSizeVar = 10.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor    = new CCColor4F(0.8f, 0.8f, 0.8f, 1.0f);
            StartColorVar = new CCColor4F(0.02f, 0.02f, 0.02f, 0.0f);
            EndColor      = new CCColor4F(0.0f, 0.0f, 0.0f, 1.0f);
            EndColorVar   = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity        = new CCPoint(0, 0);
            gravityMode.RadialAccel    = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed          = 25;
            gravityMode.SpeedVar       = 10;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#6
0
        public CCParticleRain(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(1000, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Position     = position;
            PositionVar  = new CCPoint(position.X, 0);
            Life         = 4.5f;
            LifeVar      = 0;
            Angle        = -90;
            AngleVar     = 5;
            StartSize    = 4.0f;
            StartSizeVar = 2.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = 20;

            StartColor    = new CCColor4F(0.7f, 0.8f, 1.0f, 1.0f);
            StartColorVar = new CCColor4F();
            EndColor      = new CCColor4F(0.7f, 0.8f, 1.0f, 0.5f);
            EndColorVar   = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity            = new CCPoint(10, -10);
            gravityMode.RadialAccel        = 0;
            gravityMode.RadialAccelVar     = 1;
            gravityMode.TangentialAccel    = 0;
            gravityMode.TangentialAccelVar = 1;
            gravityMode.Speed    = 130;
            gravityMode.SpeedVar = 30;
            GravityMode          = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#7
0
        public CCParticleSnow(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(700, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Life         = 45;
            LifeVar      = 15;
            Position     = position;
            PositionVar  = new CCPoint(position.X, 0);
            Angle        = -90;
            AngleVar     = 5;
            StartSize    = 10.0f;
            StartSizeVar = 5.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = 10;

            StartColor    = new CCColor4F(1.0f, 1.0f, 1.0f, 1.0f);
            StartColorVar = new CCColor4F();
            EndColor      = new CCColor4F(1.0f, 1.0f, 1.0f, 0.0f);
            EndColorVar   = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity            = new CCPoint(0, -1);
            gravityMode.RadialAccel        = 0;
            gravityMode.RadialAccelVar     = 1;
            gravityMode.TangentialAccel    = 0;
            gravityMode.TangentialAccelVar = 1;
            gravityMode.Speed    = 5;
            gravityMode.SpeedVar = 1;
            GravityMode          = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#8
0
        public CCParticleFireworks(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(1500, emitterMode)
        {
            Duration     = ParticleDurationInfinity;
            Life         = 3.5f;
            LifeVar      = 1;
            Position     = position;
            Angle        = 90;
            AngleVar     = 20;
            StartSize    = 8.0f;
            StartSizeVar = 2.0f;
            EndSize      = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor = new CCColor4F(0.5f, 0.5f, 0.5f, 1.0f);

            CCColor4F startColorVar = new CCColor4F();

            startColorVar.R = 0.5f;
            startColorVar.G = 0.5f;
            startColorVar.B = 0.5f;
            startColorVar.A = 0.1f;
            StartColorVar   = startColorVar;

            CCColor4F endColor = new CCColor4F();

            endColor.R = 0.1f;
            endColor.G = 0.1f;
            endColor.B = 0.1f;
            endColor.A = 0.2f;
            EndColor   = endColor;

            CCColor4F endColorVar = new CCColor4F();

            endColorVar.R = 0.1f;
            endColorVar.G = 0.1f;
            endColorVar.B = 0.1f;
            endColorVar.A = 0.2f;
            EndColorVar   = endColorVar;

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity        = new CCPoint(0, -90);
            gravityMode.RadialAccel    = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed          = 180;
            gravityMode.SpeedVar       = 50;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
        public virtual bool InitWithTotalParticles(int numberOfParticles)
        {
            m_uTotalParticles = numberOfParticles;

            m_pParticles = new CCParticle[m_uTotalParticles];

            m_uAllocatedParticles = numberOfParticles;

            if (m_pBatchNode != null)
            {
                for (int i = 0; i < m_uTotalParticles; i++)
                {
                    m_pParticles[i].atlasIndex = i;
                }
            }
            // default, active
            m_bIsActive = true;

            // default blend function
            m_tBlendFunc.Source      = CCMacros.CCDefaultSourceBlending;
            m_tBlendFunc.Destination = CCMacros.CCDefaultDestinationBlending;

            // default movement type;
            m_ePositionType = CCPositionType.kCCPositionTypeFree;

            // by default be in mode A:
            m_nEmitterMode = CCEmitterMode.kCCParticleModeGravity;

            // default: modulate
            // XXX: not used
            //    colorModulate = YES;

            m_bIsAutoRemoveOnFinish = false;

            // Optimization: compile udpateParticle method
            //updateParticleSel = @selector(updateQuadWithParticle:newPosition:);
            //updateParticleImp = (CC_UPDATE_PARTICLE_IMP) [self methodForSelector:updateParticleSel];
            //for batchNode
            m_bTransformSystemDirty = false;

            return(true);
        }
示例#10
0
        CCParticleSystem(int numberOfParticles, bool shouldAllocParticles, CCEmitterMode emitterMode = CCEmitterMode.Gravity)
        {
            TotalParticles     = numberOfParticles;
            AllocatedParticles = numberOfParticles;
            PositionType       = CCPositionType.Free;
            EmitterMode        = emitterMode;

            IsActive           = true;
            AutoRemoveOnFinish = false;

            if (shouldAllocParticles)
            {
                if (emitterMode == CCEmitterMode.Gravity)
                {
                    GravityParticles = new CCParticleGravity[numberOfParticles];
                }
                else
                {
                    RadialParticles = new CCParticleRadial[numberOfParticles];
                }
            }
        }
示例#11
0
        public CCParticleMeteor(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(150, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Life = 2;
            LifeVar = 1;
            Position = position;
            PositionVar = CCPoint.Zero;
            Angle = 90;
            AngleVar = 360;
            StartSize = 60.0f;
            StartSizeVar = 10.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor = new CCColor4F(0.2f, 0.4f, 0.7f, 1.0f);
            StartColorVar = new CCColor4F(0.0f, 0.0f, 0.2f, 0.1f);
            EndColor = new CCColor4F(0.0f, 0.0f, 0.0f, 1.0f);
            EndColorVar = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(-200, 200);
            gravityMode.RadialAccel = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed = 15;
            gravityMode.SpeedVar = 5;
            gravityMode.TangentialAccel = 0;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            BlendAdditive = true;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#12
0
        public CCParticleSpiral(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(500, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Position = position;
            PositionVar = CCPoint.Zero;
            Life = 12;
            LifeVar = 0;
            Angle = 90;
            AngleVar = 0;
            StartSize = 20.0f;
            StartSizeVar = 0.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor = new CCColor4F(0.5f, 0.5f, 0.5f, 1.0f);
            StartColorVar = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);
            EndColor = new CCColor4F(0.5f, 0.5f, 0.5f, 1.0f);
            EndColorVar = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(0, 0);
            gravityMode.RadialAccel = -380;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed = 150;
            gravityMode.SpeedVar = 0;
            gravityMode.TangentialAccel = 45;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#13
0
        public CCParticleExplosion(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(700, emitterMode)
        {
            Duration = 0.1f;
            Life = 2.0f;
            LifeVar = 2;
            Position = new CCPoint(position);
            PositionVar = CCPoint.Zero;
            Angle = 90;
            AngleVar = 360;
            StartSize = 15.0f;
            StartSizeVar = 10.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Duration;

            StartColor = new CCColor4F(0.7f, 0.1f, 0.2f, 1.0f);
            StartColorVar = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);
            EndColor = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);
            EndColorVar = new CCColor4F(0.5f, 0.5f, 0.5f, 0.0f);

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(0, 0);
            gravityMode.RadialAccel = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed = 70;
            gravityMode.SpeedVar = 40;
            gravityMode.TangentialAccel = 0;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#14
0
        public CCParticleSmoke(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(200, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Life = 4;
            LifeVar = 1;
            Position = position;
            PositionVar = new CCPoint(20, 0);
            Angle = 90;
            AngleVar = 5;
            StartSize = 60.0f;
            StartSizeVar = 10.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor = new CCColor4F(0.8f, 0.8f, 0.8f, 1.0f);
            StartColorVar = new CCColor4F(0.02f, 0.02f, 0.02f, 0.0f);
            EndColor = new CCColor4F(0.0f, 0.0f, 0.0f, 1.0f);
            EndColorVar = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(0, 0);
            gravityMode.RadialAccel = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed = 25;
            gravityMode.SpeedVar = 10;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#15
0
 public CCParticleSun(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : this(position, 350, emitterMode)
 {
 }
示例#16
0
        public CCParticleSnow(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(700, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Life = 45;
            LifeVar = 15;
            Position = position;
            PositionVar = new CCPoint(position.X, 0);
            Angle = -90;
            AngleVar = 5;
            StartSize = 10.0f;
            StartSizeVar = 5.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = 10;

            StartColor = new CCColor4F(1.0f, 1.0f, 1.0f, 1.0f);
            StartColorVar = new CCColor4F();
            EndColor = new CCColor4F(1.0f, 1.0f, 1.0f, 0.0f);
            EndColorVar = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(0, -1);
            gravityMode.RadialAccel = 0;
            gravityMode.RadialAccelVar = 1;
            gravityMode.TangentialAccel = 0;
            gravityMode.TangentialAccelVar = 1;
            gravityMode.Speed = 5;
            gravityMode.SpeedVar = 1;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#17
0
 public CCParticleSystemQuad(int numberOfParticles, CCEmitterMode emitterMode = CCEmitterMode.Gravity)
     : base(numberOfParticles, emitterMode)
 {
 }
示例#18
0
 protected CCParticleSystem(int numberOfParticles, CCEmitterMode emitterMode = CCEmitterMode.Gravity)
     : this(numberOfParticles, true, emitterMode)
 {
 }
 public CCParticleSystemQuad(int numberOfParticles = 0, CCEmitterMode emitterMode = CCEmitterMode.Gravity)
     : base(numberOfParticles, emitterMode)
 {
     InitRenderCommand();
 }
示例#20
0
 public CCParticleSun(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : this(position, 350, emitterMode)
 { 
 }
        public bool InitWithDictionary(PlistDictionary dictionary)
        {
            bool bRet = false;

            do
            {
                int maxParticles = dictionary["maxParticles"].AsInt;
                // self, not super
                if (InitWithTotalParticles(maxParticles))
                {
                    // angle
                    m_fAngle    = dictionary["angle"].AsFloat;
                    m_fAngleVar = dictionary["angleVariance"].AsFloat;

                    // duration
                    m_fDuration = dictionary["duration"].AsFloat;

                    // blend function
                    m_tBlendFunc.Source      = dictionary["blendFuncSource"].AsInt;
                    m_tBlendFunc.Destination = dictionary["blendFuncDestination"].AsInt;

                    // color
                    m_tStartColor.R = dictionary["startColorRed"].AsFloat;
                    m_tStartColor.G = dictionary["startColorGreen"].AsFloat;
                    m_tStartColor.B = dictionary["startColorBlue"].AsFloat;
                    m_tStartColor.A = dictionary["startColorAlpha"].AsFloat;

                    m_tStartColorVar.R = dictionary["startColorVarianceRed"].AsFloat;
                    m_tStartColorVar.G = dictionary["startColorVarianceGreen"].AsFloat;
                    m_tStartColorVar.B = dictionary["startColorVarianceBlue"].AsFloat;
                    m_tStartColorVar.A = dictionary["startColorVarianceAlpha"].AsFloat;

                    m_tEndColor.R = dictionary["finishColorRed"].AsFloat;
                    m_tEndColor.G = dictionary["finishColorGreen"].AsFloat;
                    m_tEndColor.B = dictionary["finishColorBlue"].AsFloat;
                    m_tEndColor.A = dictionary["finishColorAlpha"].AsFloat;

                    m_tEndColorVar.R = dictionary["finishColorVarianceRed"].AsFloat;
                    m_tEndColorVar.G = dictionary["finishColorVarianceGreen"].AsFloat;
                    m_tEndColorVar.B = dictionary["finishColorVarianceBlue"].AsFloat;
                    m_tEndColorVar.A = dictionary["finishColorVarianceAlpha"].AsFloat;

                    // particle size
                    m_fStartSize    = dictionary["startParticleSize"].AsFloat;
                    m_fStartSizeVar = dictionary["startParticleSizeVariance"].AsFloat;
                    m_fEndSize      = dictionary["finishParticleSize"].AsFloat;
                    m_fEndSizeVar   = dictionary["finishParticleSizeVariance"].AsFloat;

                    // position
                    float x = dictionary["sourcePositionx"].AsFloat;
                    float y = dictionary["sourcePositiony"].AsFloat;
                    Position    = new CCPoint(x, y);
                    m_tPosVar.X = dictionary["sourcePositionVariancex"].AsFloat;
                    m_tPosVar.Y = dictionary["sourcePositionVariancey"].AsFloat;

                    // Spinning
                    m_fStartSpin    = dictionary["rotationStart"].AsFloat;
                    m_fStartSpinVar = dictionary["rotationStartVariance"].AsFloat;
                    m_fEndSpin      = dictionary["rotationEnd"].AsFloat;
                    m_fEndSpinVar   = dictionary["rotationEndVariance"].AsFloat;

                    m_nEmitterMode = (CCEmitterMode)dictionary["emitterType"].AsInt;

                    // Mode A: Gravity + tangential accel + radial accel
                    if (m_nEmitterMode == CCEmitterMode.kCCParticleModeGravity)
                    {
                        // gravity
                        modeA.gravity.X = dictionary["gravityx"].AsFloat;
                        modeA.gravity.Y = dictionary["gravityy"].AsFloat;

                        // speed
                        modeA.speed    = dictionary["speed"].AsFloat;
                        modeA.speedVar = dictionary["speedVariance"].AsFloat;

                        // radial acceleration
                        modeA.radialAccel    = dictionary["radialAcceleration"].AsFloat;
                        modeA.radialAccelVar = dictionary["radialAccelVariance"].AsFloat;

                        // tangential acceleration
                        modeA.tangentialAccel    = dictionary["tangentialAcceleration"].AsFloat;
                        modeA.tangentialAccelVar = dictionary["tangentialAccelVariance"].AsFloat;
                    }

                    // or Mode B: radius movement
                    else if (m_nEmitterMode == CCEmitterMode.kCCParticleModeRadius)
                    {
                        modeB.startRadius        = dictionary["maxRadius"].AsFloat;
                        modeB.startRadiusVar     = dictionary["maxRadiusVariance"].AsFloat;
                        modeB.endRadius          = dictionary["minRadius"].AsFloat;
                        modeB.endRadiusVar       = 0.0f;
                        modeB.rotatePerSecond    = dictionary["rotatePerSecond"].AsFloat;
                        modeB.rotatePerSecondVar = dictionary["rotatePerSecondVariance"].AsFloat;
                    }
                    else
                    {
                        Debug.Assert(false, "Invalid emitterType in config file");
                        break;
                    }

                    // life span
                    m_fLife    = dictionary["particleLifespan"].AsFloat;
                    m_fLifeVar = dictionary["particleLifespanVariance"].AsFloat;

                    // emission Rate
                    m_fEmissionRate = m_uTotalParticles / m_fLife;

                    //don't get the internal texture if a batchNode is used
                    if (m_pBatchNode == null)
                    {
                        // Set a compatible default for the alpha transfer
                        m_bOpacityModifyRGB = false;

                        // texture
                        // Try to get the texture from the cache
                        string textureName = dictionary["textureFileName"].AsString;
                        string fullpath    = CCFileUtils.FullPathFromRelativeFile(textureName, m_sPlistFile);

                        CCTexture2D tex = null;

                        if (!string.IsNullOrEmpty(textureName))
                        {
                            // set not pop-up message box when load image failed
                            bool bNotify = CCFileUtils.IsPopupNotify;
                            CCFileUtils.IsPopupNotify = false;
                            try
                            {
                                tex = CCTextureCache.SharedTextureCache.AddImage(fullpath);
                            }
                            catch (Exception)
                            {
                                tex = null;
                            }

                            // reset the value of UIImage notify
                            CCFileUtils.IsPopupNotify = bNotify;
                        }

                        if (tex != null)
                        {
                            Texture = tex;
                        }
                        else
                        {
                            string textureData = dictionary["textureImageData"].AsString;
                            Debug.Assert(textureData != null && textureData.Length > 0, string.Format("CCParticleSystem: textureData does not exist : {0}", textureName));

                            int dataLen = textureData.Length;
                            if (dataLen != 0)
                            {
                                var dataBytes = Convert.FromBase64String(textureData);
                                Debug.Assert(dataBytes != null, string.Format("CCParticleSystem: error decoding textureImageData : {0}", textureName));

                                var imageBytes = Inflate(dataBytes);
                                Debug.Assert(imageBytes != null, string.Format("CCParticleSystem: error init image with Data for texture : {0}", textureName));

                                using (var imageStream = new MemoryStream(imageBytes))
                                {
                                    try
                                    {
                                        Texture = CCTextureCache.SharedTextureCache.AddImage(imageStream, textureName);
                                    }
                                    catch (Exception ex)
                                    {
                                        CCLog.Log(ex.ToString());
                                        throw (new NotSupportedException("Embedded textureImageData is a format that this platform does not understand. Use PNG, GIF, or JPEG for your particle systems."));
                                    }
                                }
                            }
                        }
                        Debug.Assert(Texture != null, string.Format("CCParticleSystem: error loading the texture : {0}", textureName));
                    }
                    bRet = true;
                }
            } while (false);

            return(bRet);
        }
示例#22
0
        public CCParticleRain(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(1000, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Position = position;
            PositionVar = new CCPoint(position.X, 0);
            Life = 4.5f;
            LifeVar = 0;
            Angle = -90;
            AngleVar = 5;
            StartSize = 4.0f;
            StartSizeVar = 2.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = 20;

            StartColor = new CCColor4F(0.7f, 0.8f, 1.0f, 1.0f);
            StartColorVar = new CCColor4F();
            EndColor = new CCColor4F(0.7f, 0.8f, 1.0f, 0.5f);
            EndColorVar = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(10, -10);
            gravityMode.RadialAccel = 0;
            gravityMode.RadialAccelVar = 1;
            gravityMode.TangentialAccel = 0;
            gravityMode.TangentialAccelVar = 1;
            gravityMode.Speed = 130;
            gravityMode.SpeedVar = 30;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }
示例#23
0
        public bool InitWithDictionary(PlistDictionary dictionary)
        {
            bool bRet = false;

            do
            {
                int maxParticles = dictionary["maxParticles"].AsInt;
                // self, not super
                if (InitWithTotalParticles(maxParticles))
                {
                    // angle
                    m_fAngle = dictionary["angle"].AsFloat;
                    m_fAngleVar = dictionary["angleVariance"].AsFloat;

                    // duration
                    m_fDuration = dictionary["duration"].AsFloat;

                    // blend function
                    m_tBlendFunc.Source = dictionary["blendFuncSource"].AsInt;
                    m_tBlendFunc.Destination = dictionary["blendFuncDestination"].AsInt;

                    // color
                    m_tStartColor.R = dictionary["startColorRed"].AsFloat;
                    m_tStartColor.G = dictionary["startColorGreen"].AsFloat;
                    m_tStartColor.B = dictionary["startColorBlue"].AsFloat;
                    m_tStartColor.A = dictionary["startColorAlpha"].AsFloat;

                    m_tStartColorVar.R = dictionary["startColorVarianceRed"].AsFloat;
                    m_tStartColorVar.G = dictionary["startColorVarianceGreen"].AsFloat;
                    m_tStartColorVar.B = dictionary["startColorVarianceBlue"].AsFloat;
                    m_tStartColorVar.A = dictionary["startColorVarianceAlpha"].AsFloat;

                    m_tEndColor.R = dictionary["finishColorRed"].AsFloat;
                    m_tEndColor.G = dictionary["finishColorGreen"].AsFloat;
                    m_tEndColor.B = dictionary["finishColorBlue"].AsFloat;
                    m_tEndColor.A = dictionary["finishColorAlpha"].AsFloat;

                    m_tEndColorVar.R = dictionary["finishColorVarianceRed"].AsFloat;
                    m_tEndColorVar.G = dictionary["finishColorVarianceGreen"].AsFloat;
                    m_tEndColorVar.B = dictionary["finishColorVarianceBlue"].AsFloat;
                    m_tEndColorVar.A = dictionary["finishColorVarianceAlpha"].AsFloat;

                    // particle size
                    m_fStartSize = dictionary["startParticleSize"].AsFloat;
                    m_fStartSizeVar = dictionary["startParticleSizeVariance"].AsFloat;
                    m_fEndSize = dictionary["finishParticleSize"].AsFloat;
                    m_fEndSizeVar = dictionary["finishParticleSizeVariance"].AsFloat;

                    // position
                    float x = dictionary["sourcePositionx"].AsFloat;
                    float y = dictionary["sourcePositiony"].AsFloat;
                    Position = new CCPoint(x, y);
                    m_tPosVar.X = dictionary["sourcePositionVariancex"].AsFloat;
                    m_tPosVar.Y = dictionary["sourcePositionVariancey"].AsFloat;

                    // Spinning
                    m_fStartSpin = dictionary["rotationStart"].AsFloat;
                    m_fStartSpinVar = dictionary["rotationStartVariance"].AsFloat;
                    m_fEndSpin = dictionary["rotationEnd"].AsFloat;
                    m_fEndSpinVar = dictionary["rotationEndVariance"].AsFloat;

                    m_nEmitterMode = (CCEmitterMode) dictionary["emitterType"].AsInt;

                    // Mode A: Gravity + tangential accel + radial accel
                    if (m_nEmitterMode == CCEmitterMode.kCCParticleModeGravity)
                    {
                        // gravity
                        modeA.gravity.X = dictionary["gravityx"].AsFloat;
                        modeA.gravity.Y = dictionary["gravityy"].AsFloat;

                        // speed
                        modeA.speed = dictionary["speed"].AsFloat;
                        modeA.speedVar = dictionary["speedVariance"].AsFloat;

                        // radial acceleration
                        modeA.radialAccel = dictionary["radialAcceleration"].AsFloat;
                        modeA.radialAccelVar = dictionary["radialAccelVariance"].AsFloat;

                        // tangential acceleration
                        modeA.tangentialAccel = dictionary["tangentialAcceleration"].AsFloat;
                        modeA.tangentialAccelVar = dictionary["tangentialAccelVariance"].AsFloat;
                    }

                        // or Mode B: radius movement
                    else if (m_nEmitterMode == CCEmitterMode.kCCParticleModeRadius)
                    {
                        modeB.startRadius = dictionary["maxRadius"].AsFloat;
                        modeB.startRadiusVar = dictionary["maxRadiusVariance"].AsFloat;
                        modeB.endRadius = dictionary["minRadius"].AsFloat;
                        modeB.endRadiusVar = 0.0f;
                        modeB.rotatePerSecond = dictionary["rotatePerSecond"].AsFloat;
                        modeB.rotatePerSecondVar = dictionary["rotatePerSecondVariance"].AsFloat;
                    }
                    else
                    {
                        Debug.Assert(false, "Invalid emitterType in config file");
                        break;
                    }

                    // life span
                    m_fLife = dictionary["particleLifespan"].AsFloat;
                    m_fLifeVar = dictionary["particleLifespanVariance"].AsFloat;

                    // emission Rate
                    m_fEmissionRate = m_uTotalParticles / m_fLife;

                    //don't get the internal texture if a batchNode is used
                    if (m_pBatchNode == null)
                    {
                        // Set a compatible default for the alpha transfer
                        m_bOpacityModifyRGB = false;

                        // texture
                        // Try to get the texture from the cache
                        string textureName = dictionary["textureFileName"].AsString;
                        string fullpath = CCFileUtils.FullPathFromRelativeFile(textureName, m_sPlistFile);

                        CCTexture2D tex = null;

                        if (!string.IsNullOrEmpty(textureName))
                        {
                            // set not pop-up message box when load image failed
                            bool bNotify = CCFileUtils.IsPopupNotify;
                            CCFileUtils.IsPopupNotify = false;
                            try
                            {
                                tex = CCTextureCache.SharedTextureCache.AddImage(fullpath);
                            }
                            catch (Exception)
                            {
                                tex = null;
                            }

                            // reset the value of UIImage notify
                            CCFileUtils.IsPopupNotify = bNotify;
                        }

                        if (tex != null)
                        {
                            Texture = tex;
                        }
                        else
                        {
                            string textureData = dictionary["textureImageData"].AsString;
                            Debug.Assert(textureData != null && textureData.Length > 0, string.Format("CCParticleSystem: textureData does not exist : {0}",textureName));

                            int dataLen = textureData.Length;
                            if (dataLen != 0)
                            {

                                var dataBytes = Convert.FromBase64String(textureData);
                                Debug.Assert(dataBytes != null, string.Format("CCParticleSystem: error decoding textureImageData : {0}",textureName));

                                var imageBytes = Inflate(dataBytes);
                                Debug.Assert(imageBytes != null, string.Format("CCParticleSystem: error init image with Data for texture : {0}",textureName));

                                using (var imageStream = new MemoryStream(imageBytes))
                                {
                                    try
                                    {
                                        Texture = CCTextureCache.SharedTextureCache.AddImage(imageStream, textureName);
                                    }
                                    catch (Exception ex)
                                    {
                                        CCLog.Log(ex.ToString());
                                        throw (new NotSupportedException("Embedded textureImageData is a format that this platform does not understand. Use PNG, GIF, or JPEG for your particle systems."));
                                    }
                                }
                            }
                        }
                        Debug.Assert(Texture != null, string.Format("CCParticleSystem: error loading the texture : {0}", textureName));
                    }
                    bRet = true;
                }
            } while (false);

            return bRet;
        }
示例#24
0
        public CCParticleGalaxy(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(200, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Life = 4;
            LifeVar = 1;
            Position = position;
            PositionVar = CCPoint.Zero;
            Angle = 90;
            AngleVar = 360;
            StartSize = 37.0f;
            StartSizeVar = 10.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor = new CCColor4F(0.12f, 0.25f, 0.76f, 1.0f);
            StartColorVar = new CCColor4F();
            EndColor = new CCColor4F(0.0f, 0.0f, 0.0f, 1.0f);
            EndColorVar = new CCColor4F();

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(0, 0);
            gravityMode.RadialAccel = -80;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed = 60;
            gravityMode.SpeedVar = 10;
            gravityMode.TangentialAccel = 80;
            gravityMode.TangentialAccelVar = 0;
            GravityMode = gravityMode;

            // additive
            BlendAdditive = true;

            Texture = CCParticleExample.DefaultTexture;
        }
 public CCParticleSystemQuad(int numberOfParticles, CCEmitterMode emitterMode=CCEmitterMode.Gravity) 
     : base(numberOfParticles, emitterMode)
 {
 }
示例#26
0
        public virtual bool InitWithTotalParticles(int numberOfParticles)
        {
            m_uTotalParticles = numberOfParticles;

            m_pParticles = new CCParticle[m_uTotalParticles];

            m_uAllocatedParticles = numberOfParticles;

            if (m_pBatchNode != null)
            {
                for (int i = 0; i < m_uTotalParticles; i++)
                {
                    m_pParticles[i].atlasIndex = i;
                }
            }
            // default, active
            m_bIsActive = true;

            // default blend function
            m_tBlendFunc.Source = CCMacros.CCDefaultSourceBlending;
            m_tBlendFunc.Destination = CCMacros.CCDefaultDestinationBlending;

            // default movement type;
            m_ePositionType = CCPositionType.kCCPositionTypeFree;

            // by default be in mode A:
            m_nEmitterMode = CCEmitterMode.kCCParticleModeGravity;

            // default: modulate
            // XXX: not used
            //    colorModulate = YES;

            m_bIsAutoRemoveOnFinish = false;

            // Optimization: compile udpateParticle method
            //updateParticleSel = @selector(updateQuadWithParticle:newPosition:);
            //updateParticleImp = (CC_UPDATE_PARTICLE_IMP) [self methodForSelector:updateParticleSel];
            //for batchNode
            m_bTransformSystemDirty = false;

            return true;
        }
示例#27
0
        public CCParticleFire(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(250, emitterMode)
        {
            if (config == null) 
            {
                config = new CCParticleSystemConfig ();
                config.ParticleSystemType = CCParticleSystemType.Internal;

                config.Duration = ParticleDurationInfinity;
                config.Life = 3;
                config.LifeVar = 0.25f;
                config.Position = position;
                config.PositionVar = new CCPoint(40, 20);
                config.Angle = 90;
                config.AngleVar = 10;
                config.StartSize = 54.0f;
                config.StartSizeVar = 10.0f;
                config.EndSize = ParticleStartSizeEqualToEndSize;

                config.EmitterMode = CCEmitterMode.Gravity;

                CCColor4F cstartColor = new CCColor4F();
                cstartColor.R = 0.76f;
                cstartColor.G = 0.25f;
                cstartColor.B = 0.12f;
                cstartColor.A = 1.0f;
                config.StartColor = cstartColor;

                CCColor4F cstartColorVar = new CCColor4F();
                cstartColorVar.R = 0.0f;
                cstartColorVar.G = 0.0f;
                cstartColorVar.B = 0.0f;
                cstartColorVar.A = 0.0f;
                config.StartColorVar = cstartColorVar;

                CCColor4F cendColor = new CCColor4F();
                cendColor.R = 0.0f;
                cendColor.G = 0.0f;
                cendColor.B = 0.0f;
                cendColor.A = 1.0f;
                config.EndColor = cendColor;

                CCColor4F cendColorVar = new CCColor4F();
                cendColorVar.R = 0.0f;
                cendColorVar.G = 0.0f;
                cendColorVar.B = 0.0f;
                cendColorVar.A = 0.0f;
                config.EndColorVar = cendColorVar;

                config.Gravity = new CCPoint(0, 0);
                config.GravityRadialAccel = 0;
                config.GravityRadialAccelVar = 0;
                config.GravitySpeed = 60;
                config.GravitySpeedVar = 20;

                config.Texture = CCParticleExample.DefaultTexture;

            }

            Duration = config.Duration;
            Life = config.Life;
            LifeVar = config.LifeVar;
            Position = config.Position;
            PositionVar = config.PositionVar;
            Angle = config.Angle;
            AngleVar = config.AngleVar;
            StartSize = config.StartSize;
            StartSizeVar = config.StartSizeVar;
            EndSize = config.EndSize;

            EmissionRate = TotalParticles / Life;

            CCColor4F startColor = new CCColor4F();
            startColor.R = config.StartColor.R;
            startColor.G = config.StartColor.G;
            startColor.B = config.StartColor.B;
            startColor.A = config.StartColor.A;
            StartColor = startColor;

            CCColor4F startColorVar = new CCColor4F();
            startColorVar.R = config.StartColorVar.R;
            startColorVar.G = config.StartColorVar.G;
            startColorVar.B = config.StartColorVar.B;
            startColorVar.A = config.StartColorVar.A;
            StartColorVar = startColorVar;

            CCColor4F endColor = new CCColor4F();
            endColor.R = config.EndColor.R;
            endColor.G = config.EndColor.G;
            endColor.B = config.EndColor.B;
            endColor.A = config.EndColor.A;
            EndColor = endColor;

            CCColor4F endColorVar = new CCColor4F();
            endColorVar.R = config.EndColorVar.R;
            endColorVar.G = config.EndColorVar.G;
            endColorVar.B = config.EndColorVar.B;
            endColorVar.A = config.EndColorVar.A;
            EndColorVar = endColorVar;

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint(config.Gravity);
            gravityMode.RadialAccel = config.GravityRadialAccel;
            gravityMode.RadialAccelVar = config.GravityRadialAccelVar;
            gravityMode.Speed = config.GravitySpeed;
            gravityMode.SpeedVar = config.GravitySpeedVar;
            GravityMode = gravityMode;

            BlendAdditive = true;

            Texture = config.Texture;
        }
示例#28
0
        public CCParticleFire(CCPoint position, CCEmitterMode emitterMode = CCEmitterMode.Gravity) : base(250, emitterMode)
        {
            if (config == null)
            {
                config = new CCParticleSystemConfig();
                config.ParticleSystemType = CCParticleSystemType.Internal;

                config.Duration     = ParticleDurationInfinity;
                config.Life         = 3;
                config.LifeVar      = 0.25f;
                config.Position     = position;
                config.PositionVar  = new CCPoint(40, 20);
                config.Angle        = 90;
                config.AngleVar     = 10;
                config.StartSize    = 54.0f;
                config.StartSizeVar = 10.0f;
                config.EndSize      = ParticleStartSizeEqualToEndSize;

                config.EmitterMode = CCEmitterMode.Gravity;

                CCColor4F cstartColor = new CCColor4F();
                cstartColor.R     = 0.76f;
                cstartColor.G     = 0.25f;
                cstartColor.B     = 0.12f;
                cstartColor.A     = 1.0f;
                config.StartColor = cstartColor;

                CCColor4F cstartColorVar = new CCColor4F();
                cstartColorVar.R     = 0.0f;
                cstartColorVar.G     = 0.0f;
                cstartColorVar.B     = 0.0f;
                cstartColorVar.A     = 0.0f;
                config.StartColorVar = cstartColorVar;

                CCColor4F cendColor = new CCColor4F();
                cendColor.R     = 0.0f;
                cendColor.G     = 0.0f;
                cendColor.B     = 0.0f;
                cendColor.A     = 1.0f;
                config.EndColor = cendColor;

                CCColor4F cendColorVar = new CCColor4F();
                cendColorVar.R     = 0.0f;
                cendColorVar.G     = 0.0f;
                cendColorVar.B     = 0.0f;
                cendColorVar.A     = 0.0f;
                config.EndColorVar = cendColorVar;

                config.Gravity               = new CCPoint(0, 0);
                config.GravityRadialAccel    = 0;
                config.GravityRadialAccelVar = 0;
                config.GravitySpeed          = 60;
                config.GravitySpeedVar       = 20;

                config.Texture = CCParticleExample.DefaultTexture;
            }

            Duration     = config.Duration;
            Life         = config.Life;
            LifeVar      = config.LifeVar;
            Position     = config.Position;
            PositionVar  = config.PositionVar;
            Angle        = config.Angle;
            AngleVar     = config.AngleVar;
            StartSize    = config.StartSize;
            StartSizeVar = config.StartSizeVar;
            EndSize      = config.EndSize;

            EmissionRate = TotalParticles / Life;

            CCColor4F startColor = new CCColor4F();

            startColor.R = config.StartColor.R;
            startColor.G = config.StartColor.G;
            startColor.B = config.StartColor.B;
            startColor.A = config.StartColor.A;
            StartColor   = startColor;

            CCColor4F startColorVar = new CCColor4F();

            startColorVar.R = config.StartColorVar.R;
            startColorVar.G = config.StartColorVar.G;
            startColorVar.B = config.StartColorVar.B;
            startColorVar.A = config.StartColorVar.A;
            StartColorVar   = startColorVar;

            CCColor4F endColor = new CCColor4F();

            endColor.R = config.EndColor.R;
            endColor.G = config.EndColor.G;
            endColor.B = config.EndColor.B;
            endColor.A = config.EndColor.A;
            EndColor   = endColor;

            CCColor4F endColorVar = new CCColor4F();

            endColorVar.R = config.EndColorVar.R;
            endColorVar.G = config.EndColorVar.G;
            endColorVar.B = config.EndColorVar.B;
            endColorVar.A = config.EndColorVar.A;
            EndColorVar   = endColorVar;

            GravityMoveMode gravityMode = new GravityMoveMode();

            gravityMode.Gravity        = new CCPoint(config.Gravity);
            gravityMode.RadialAccel    = config.GravityRadialAccel;
            gravityMode.RadialAccelVar = config.GravityRadialAccelVar;
            gravityMode.Speed          = config.GravitySpeed;
            gravityMode.SpeedVar       = config.GravitySpeedVar;
            GravityMode = gravityMode;

            BlendAdditive = true;

            Texture = config.Texture;
        }
示例#29
0
 protected CCParticleSystem(int numberOfParticles, CCEmitterMode emitterMode = CCEmitterMode.Gravity) 
     : this(numberOfParticles, true, emitterMode)
 {
 }
示例#30
0
        CCParticleSystem(int numberOfParticles, bool shouldAllocParticles, CCEmitterMode emitterMode = CCEmitterMode.Gravity)
        {
            TotalParticles = numberOfParticles;
            AllocatedParticles = numberOfParticles;
            PositionType = CCPositionType.Free;
            EmitterMode = emitterMode;

            IsActive = true;
            AutoRemoveOnFinish = false;

            if(shouldAllocParticles) 
            {
                if (emitterMode == CCEmitterMode.Gravity) 
                {
                    GravityParticles = new CCParticleGravity[numberOfParticles];
                } 
                else 
                {
                    RadialParticles = new CCParticleRadial[numberOfParticles];
                }
            }
        }
示例#31
0
        public CCParticleFireworks(CCPoint position, CCEmitterMode emitterMode=CCEmitterMode.Gravity) : base(1500, emitterMode)
        {
            Duration = ParticleDurationInfinity;
            Life = 3.5f;
            LifeVar = 1;
            Position = position;
            Angle = 90;
            AngleVar = 20;
            StartSize = 8.0f;
            StartSizeVar = 2.0f;
            EndSize = ParticleStartSizeEqualToEndSize;

            EmissionRate = TotalParticles / Life;

            StartColor = new CCColor4F (0.5f, 0.5f, 0.5f, 1.0f);

            CCColor4F startColorVar = new CCColor4F();
            startColorVar.R = 0.5f;
            startColorVar.G = 0.5f;
            startColorVar.B = 0.5f;
            startColorVar.A = 0.1f;
            StartColorVar = startColorVar;

            CCColor4F endColor = new CCColor4F();
            endColor.R = 0.1f;
            endColor.G = 0.1f;
            endColor.B = 0.1f;
            endColor.A = 0.2f;
            EndColor = endColor;

            CCColor4F endColorVar = new CCColor4F();
            endColorVar.R = 0.1f;
            endColorVar.G = 0.1f;
            endColorVar.B = 0.1f;
            endColorVar.A = 0.2f;
            EndColorVar = endColorVar;

            GravityMoveMode gravityMode = new GravityMoveMode();
            gravityMode.Gravity = new CCPoint (0, -90);
            gravityMode.RadialAccel = 0;
            gravityMode.RadialAccelVar = 0;
            gravityMode.Speed = 180;
            gravityMode.SpeedVar = 50;
            GravityMode = gravityMode;

            BlendAdditive = false;

            Texture = CCParticleExample.DefaultTexture;
        }