第一种方法:自定义
[cpp]
//建立一个粒子系统
CCParticleSystem* pParticleSystem=new CCParticleSystemQuad();
//产生300个粒子
pParticleSystem->initWithTotalParticles(300);
//设置粒子图片
pParticleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("yezi.png"));
//设置粒子系统持续时间
pParticleSystem->setDuration(-1);
//设置重力方向
pParticleSystem->setGravity(CCPointZero);
//设置角度,角度变化率
pParticleSystem->setAngle(0);
pParticleSystem->setAngleVar(360);
//设置运动速度,运动速度的变化率
pParticleSystem->setSpeed(50);
pParticleSystem->setSpeedVar(10);
//设置径向加速度,径向加速度的变化率
pParticleSystem->setRadialAccel(70);
pParticleSystem->setRadialAccelVar(10);
//设置切向加速度,径向加速度的变化率
pParticleSystem->setTangentialAccel(80);
pParticleSystem->setTangentialAccelVar(0);
//设置粒子初始位置,位置变化率
pParticleSystem->setPosition(mSize.width/2,mSize.height/2);
pParticleSystem->setPosVar(ccp(100,100));
//设置粒子存在时间,时间变化率
pParticleSystem->setLife(2);
pParticleSystem->setLifeVar(0.3);
//设置粒子初始颜色,颜色变化率
ccColor4F cccStart={0.5,0.5,0.5,1.0};
pParticleSystem->setStartColor(cccStart);
pParticleSystem->setStartColorVar(cccStart);
//设置粒子结束颜色,颜色变化率
ccColor4F cccEnd={0.5,0.5,0.5,1.0};
pParticleSystem->setStartColor(cccEnd);
pParticleSystem->setStartColorVar(cccEnd);
//设置粒子初始大小,大小变化率
pParticleSystem->setStartSize(10);
pParticleSystem->setStartSizeVar(20);
//设置粒子结束大小,大小变化率
pParticleSystem->setStartSize(12);
pParticleSystem->setStartSizeVar(12);
//设置每秒产生粒子数
pParticleSystem->setEmissionRate(pParticleSystem->getTotalParticles()/pParticleSystem->getLife());
this->addChild(pParticleSystem,1);
效果图:
第二种方法:使用系统自带的
[cpp]
CCParticleSystem* m_emitter;
m_emitter = CCParticleFireworks::create();
m_emitter->retain();
this->addChild(m_emitter, 10);
m_emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("yezi.png") );
m_emitter->setPosition(ccp(300,320));
效果图:
其他:
[cpp]
-- CCParticleSystem(所有粒子系统的父类)
-- CCParticleSystemPoint、CCParticleSystemQuad 点粒子和方形粒子系统
-- CCParticleExplosion (爆炸粒子效果)
-- CCParticleFireworks (烟花粒子效果)
-- CCParticleFire (火焰粒子效果)
-- CCParticleFlower (花束粒子效果)
-- CCParticleGalaxy (星系粒子效果)
-- CCParticleMeteor (流星粒子效果)
-- CCParticleSpiral (漩涡粒子效果)
-- CCParticleSnow (雪粒子效果)
-- CCParticleSmoke (烟粒子效果)
-- CCParticleSun (太阳粒子效果)
-- CCParticleRain (雨粒子效果)
第三种:使用plist文件
[cpp]
CCParticleSystemQuad *system = CCParticleSystemQuad::create("lizi.plist");
system->setPosition(ccp(mSize.width/2, mSize.height/2));
this->addChild(system, 1);