Exemplo n.º 1
0
void BlockManager::Particle(CGPoint _pos)
{
    CCParticleSystemQuad* particle;
    particle = new CCParticleSystemQuad;
    particle->initWithTotalParticles(600);
    particle->autorelease();

    CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("Tile/Tile_Ground_2.png");

    particle->setTexture(texture);
    particle->setEmissionRate(296.43);
    particle->setAngle(90.0);
    particle->setAngleVar(36.2);
    ccBlendFunc blendFunc= {GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA};
    particle->setBlendFunc(blendFunc);
    particle->setDuration(0.10);
    particle->setEmitterMode(kCCParticleModeGravity);

    ccColor4F startColor= {1.00,1.00,1.00,1.00};
    particle->setStartColor(startColor);

    ccColor4F startColorVar= {0.00,0.00,0.00,0.00};
    particle->setStartColorVar(startColorVar);

    ccColor4F endColor= {1.00,1.00,1.00,0.55};
    particle->setEndColor(endColor);

    ccColor4F endColorVar= {0.00,0.00,0.00,0.00};
    particle->setEndColorVar(endColorVar);

    particle->setStartSize(6.03);
    particle->setStartSizeVar(0.00);
    particle->setEndSize(-1.00);
    particle->setEndSizeVar(0.00);
    particle->setGravity(ccp(0.00, -1837.19));
    particle->setRadialAccel(0.00);
    particle->setRadialAccelVar(0.00);
    particle->setSpeed(234);
    particle->setSpeedVar(300);
    particle->setTangentialAccel(0);
    particle->setTangentialAccelVar(0);
    particle->setTotalParticles(501);
    particle->setLife(1.69);
    particle->setLifeVar(0.10);
    particle->setStartSpin(0.00);
    particle->setEndSpin(0.00);
    particle->setEndSpinVar(0.00);
    particle->setPosition(_pos);
    particle->setPosVar(ccp(10.00,0.00));

    m_pGround->addChild(particle);

}
//------------------------------------------------------------------
// 重力发射器模式
//------------------------------------------------------------------
void HelloWorld::testGravity()
{
	CCPoint mysize = CCDirector::sharedDirector()->getVisibleSize();


	CCParticleSystemQuad* quad = CCParticleSystemQuad::create();
	this->addChild(quad,1,1);


//纹理图片
	quad->setTexture( CCTextureCache::sharedTextureCache()->addImage("HelloWorld.png") ); 


//混合模式
	ccBlendFunc cbl = { GL_SRC_ALPHA , GL_ONE};
	quad->setBlendFunc(cbl);


/********************/
/*     粒子属性     */
/********************/

//粒子生命,单位:秒
	quad->setLife(3);
	quad->setLifeVar(0.25);

//大小,-1表示和初始大小一致
	quad->setStartSize(100);
	quad->setStartSizeVar(0);
	quad->setEndSize(-1);
	quad->setEndSizeVar(0);

//颜色,ccc4f:取值0~1
	quad->setStartColor( ccc4f(192/255.0, 63/255.0, 63/255.0, 63/255.0) );
	quad->setStartColorVar( ccc4f(0, 0, 0, 0) );
	quad->setEndColor( ccc4f(0, 0, 0, 0) );
	quad->setEndColorVar( ccc4f(0, 0, 0, 0) );

//旋转角度
	quad->setStartSpin(0);
	quad->setStartSpinVar(60);
	quad->setEndSpin(180);
	quad->setEndSpinVar(30);

//发射角度
	quad->setAngle(90);
	quad->setAngleVar(10);


/********************/
/*  发射器子属性    */
/********************/

//最大粒子个数
	quad->setTotalParticles(1000); 

//粒子发射器持续时间,-1为永久
	quad->setDuration(-1);

//发射速率
	quad->setEmissionRate( quad->getTotalParticles()/quad->getLife() );

//发射器位置
	quad->setPosition( mysize/2 );
	quad->setPosVar( ccp(10,10) );


//重力模式
	quad->setEmitterMode(kCCParticleModeGravity); 

//粒子位置模式
	quad->setPositionType(kCCPositionTypeFree);

//粒子速度
	quad->setSpeed(60);
	quad->setSpeedVar(20);

//重力加速度
	quad->setGravity( ccp(0, 0) ); 

//径向加速度
	quad->setRadialAccel(0);
	quad->setRadialAccelVar(0);

//切向加速度
	quad->setTangentialAccel(0);
	quad->setTangentialAccelVar(0);

}