cocos2dx中關於粒子系統(particleSystem)的一些屬性的設定
今天剛剛看了cocos2dx 3.0的ParticleSystem的demo,下面是demo中出現的一下粒子屬性的設定:
setTexture:設定粒子的圖片,這個很簡單,就給粒子一張圖片(紋理)就行了,這樣粒子就可以按照你想要顯示的效果顯示了(如雪花等);
setDuration:設定粒子的持續時間,這個暫時還不知道幹嘛的。。。
setGravity:設定粒子的引力向量,是一個Point值(X和Y方向)
setAngle:設定角度,即精靈顯示時的角度,如setAngle(90);
setSpeed:設定速度,即精靈的執行速度,如setSpeed(160);
setRadialAccel:設定徑向速度,簡單理解就是圓半徑上面的速度,setRadialAccel(-120),負數指向內;
setTangentialAccel:設定切向速度,簡單理解就是圓切線方向的速度,setTangentialAccel(30);
setPosition:設定粒子的位置,setPosition( Point(160,240) );
setLife:設定粒子的生命值,setLife(4);
setStartSpin:設定開始旋轉值,setStartSpin(0);
setEndSpin:設定停止的旋轉速度,setEndSpin(0);
setStartColor:設定起始的顏色,setStartColor(Color4F);
setEndColor:設定停止的顏色,setEndColor(Color4F);
setStartSize:設定起始的大小,setStartSize(20.0f);
setEndSize:設定結束時的大小,setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE);
setEmissionRate:設定發射頻率,即例子噴射的頻率,
setBlendAdditive:這個搞不懂是幹嘛的。。。,用法為:setBlendAdditive(true)。。。
以下程式碼是demo中的一個小例子,大家可以看看:
void DemoBigFlower::onEnter() { ParticleDemo::onEnter(); _emitter = ParticleSystemQuad::createWithTotalParticles(50); _emitter->retain(); _background->addChild(_emitter, 10); ////_emitter->release(); // win32 : use this line or remove this line and use autorelease() _emitter->setTexture( Director::getInstance()->getTextureCache()->addImage(s_stars1) ); _emitter->setDuration(-1); // gravity _emitter->setGravity(Point::ZERO); // angle _emitter->setAngle(90); _emitter->setAngleVar(360); // speed of particles _emitter->setSpeed(160); _emitter->setSpeedVar(20); // radial _emitter->setRadialAccel(-120); _emitter->setRadialAccelVar(0); // tagential _emitter->setTangentialAccel(30); _emitter->setTangentialAccelVar(0); // emitter position _emitter->setPosition( Point(160,240) ); _emitter->setPosVar(Point::ZERO); // life of particles _emitter->setLife(4); _emitter->setLifeVar(1); // spin of particles _emitter->setStartSpin(0); _emitter->setStartSizeVar(0); _emitter->setEndSpin(0); _emitter->setEndSpinVar(0); // color of particles Color4F startColor(0.5f, 0.5f, 0.5f, 1.0f); _emitter->setStartColor(startColor); Color4F startColorVar(0.5f, 0.5f, 0.5f, 1.0f); _emitter->setStartColorVar(startColorVar); Color4F endColor(0.1f, 0.1f, 0.1f, 0.2f); _emitter->setEndColor(endColor); Color4F endColorVar(0.1f, 0.1f, 0.1f, 0.2f); _emitter->setEndColorVar(endColorVar); // size, in pixels _emitter->setStartSize(80.0f); _emitter->setStartSizeVar(40.0f); _emitter->setEndSize(ParticleSystem::START_SIZE_EQUAL_TO_END_SIZE); // emits per second _emitter->setEmissionRate(_emitter->getTotalParticles()/_emitter->getLife()); // additive _emitter->setBlendAdditive(true); setEmitterPosition(); }
以上就是demo中常用到的一些屬性,這些屬性設定較為簡單,只要大概記住就知道怎麼用了,