1. 程式人生 > >cocos2dx中關於粒子系統(particleSystem)的一些屬性的設定

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中常用到的一些屬性,這些屬性設定較為簡單,只要大概記住就知道怎麼用了,