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




你可能感兴趣的:(cocos2dx开发笔记)