cocos2dx已经为我们提供了非常多的粒子系统效果:
1、 CCParticleExplosion爆炸
2、 CCParticleFire 火
3、CCParticleFireworks烟火
4、CCParticleFlower花
5、CCParticleGalaxy 银河
6、CCParticleMeteor 流星
7、CCParticleRain 下雨
8、CCParticleSmoke 下雪
9、CCParticleSnow 炊烟
10、CCParticleSpiral 螺旋
11、CCParticleSun 太阳焰
自定义一个CCParticleSystem粒子系统
CCParticleSystem* ignore = CCParticleSystemQuad::create("Particles/SmallSun.plist");
//第一种创建节点方式
CCNode *parent1 = CCNode::create();//创建一个节点
//第二种创建节点方式
CCNode *parent2 = CCParticleBatchNode::create(ignore->getTexture());
第一种:创建一个CCParticleSystemQuad系统:每个粒子用4个点(Quad,矩形)表示的粒子系统
CCParticleSystemQuad *emitter = CCParticleSystemQuad::create("SmallSun.plist");//SmallSun.plist为用粒子系统编辑工具生成的文件
第二种:创建CCParticleSystemQuad系统
CCParticleSystemQuad * m_emitter = new CCParticleSystemQuad();
std::string filename = "Particles/" +“粒子资源文件名字”+ ".plist";
m_emitter->initWithFile(filename.c_str());
常用设置:
emitter1->setStartColor(ccc4f(1,0,0,1));//设置粒子RGBA值
emitter1->setBlendAdditive(false);//是否添加混合
emitter1->setPosition(ccp( s.width/2-30, s.height/2+60*neg));//设置发射粒子的位置
emitter->setAutoRemoveOnFinish(true);//完成后制动移除
parent1->addChild(emitter1, 0, 1);将粒子系统添加到节点(也可以直接将其添加到一个背景精灵CCSprite里面)
layer->addChild(parent1, 10, 1000+i);然后在添加到层里面
CCParticleSystem中的常用设置参数表:
//重力和方向的向量
CCPoint gravity;
//速度
float speed;
//粒子的速度差异
float speedVar;
//粒子的切线加速度
float tangentialAccel;
//粒子间的切线加速度差异
float tangentialAccelVar;
//粒子的径向加速度
float radialAccel;
//粒子间的径向加速度差异
float radialAccelVar;
//粒子开始半径
float startRadius;
//粒子间开始半径差异
float startRadiusVar;
//粒子结束半径
float endRadius;
//粒子间结束半径差异
float endRadiusVar;
//粒子每秒的旋转角度
float rotatePerSecond;
//粒子间每秒的旋转角度差异
float rotatePerSecondVar;