Cocos2d-x 粒子系統詳解
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;