今天刚刚看了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中常用到的一些属性,这些属性设置较为简单,只要大概记住就知道怎么用了,