首先,从粒子池中获取一个粒子, 然后计算赋予初始属性后,发射他。 在粒子飞行过程中,不断的刷新来修正他的属性。 粒子死亡后,回归粒子池。 三、例子相关属性 Variance 浮动值:表示随机上下浮动的修正值,实际值由原始值+浮动值组成,例如lifespan=5,lifespan Variance=1 那么随机出来的结果就是4~6
四、发射器相关属性 发射器有两种,一种是重力发射器(用于实现在重力条件下的粒子运动),另一种是放射发射器(用于实现在无重力下的粒子运动)。 五、纹理Texture 如果没有贴图的话,所有粒子将会是单调的色块。粒子的贴图没有具体限制,可以是灰度图,也可以是一张具体的图片。但要小于64x64pixel 六、cocos2d-x实现Particle System
第一种方法: CCParticleSystem*m_emitter;
m_emitter=CCParticleFireworks::node();
m_emitter->retain();
this->addChild(m_emitter,10);
m_emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage(“image.png”));
m_emitter->setposition(ccp( 489,128);">320)); 第二种方法: CCParticleSystem*m_emitter;
m_emitter= newCCParticleSystemQuad();
m_emitter->initWithTotalParticles( 50);
10);
m_emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage(s_stars1));
m_emitter->setDuration(- 1);
// gravity
m_emitter->setGravity(CCPointZero);
angle
m_emitter->setAngle( 90);
m_emitter->setAngleVar( 360);
speedofparticles
m_emitter->setSpeed( 160);
m_emitter->setSpeedVar( 20);
radial
m_emitter->seTradialAccel(- 120);
m_emitter->seTradialAccelVar( 0);
tagential
m_emitter->setTangentialAccel( 30);
m_emitter->setTangentialAccelVar( emitterposition
m_emitter->setposition(CCPointMake( 160,128);">240));
m_emitter->setPosVar(CCPointZero);
lifeofparticles
m_emitter->setlife( 4);
m_emitter->setlifeVar( spinofparticles
m_emitter->setStartSpin( 0);
m_emitter->setStartSizeVar( 0);
m_emitter->setEndSpin( 0);
m_emitter->setEndSpinVar( colorofparticles
cccolor4Fstartcolor={ 0.5f,128);">1.0f};
m_emitter->setStartcolor(startcolor);
cccolor4FstartcolorVar={ 1.0f};
m_emitter->setStartcolorVar(startcolorVar);
cccolor4Fendcolor={ 0.1f,128);">0.2f};
m_emitter->setEndcolor(endcolor);
cccolor4FendcolorVar={ 0.2f};
m_emitter->setEndcolorVar(endcolorVar);
size,inpixels
m_emitter->setStartSize( 80.0f);
m_emitter->setStartSizeVar( 40.0f);
m_emitter->setEndSize(kParticleStartSizeEqualToEndSize);
emitspersecond
m_emitter->setEmissionRate(m_emitter->getTotalParticles()/m_emitter->getlife());
additive
m_emitter->setIsBlendAdditive( true); 第三种方法: CCParticleSystemQuad*system= newCCParticleSystemQuad();
system->initWithfile( " Images/SpinningPeas.pList "); pList文件可以通过例子编辑器获得
system->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage( Images/particles.png ")
,CCRectMake( 0,128);">32,128);">32));
addChild(system,128);">10);
system->setposition 总结
以上是内存溢出为你收集整理的cocos2d-x:粒子系统详解 (Particle System)全部内容,希望文章能够帮你解决cocos2d-x:粒子系统详解 (Particle System)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)