粒子系统主要分为如下两种模式:
1.重力式粒子系统(CCParticleSystemPoint ): 这种粒子存在重力,好像地球的万有引力一样,所有的粒子都会收到重力的约束,当然重力的大小是可以自己定义的
2.放射性粒子系统(CCParticleSystemQuad):: 这种粒子不存在重力,因此粒子好像都在空中,不再收到地球万有引力的作用
@1——根据 plist 文件创建粒子系统:
- CCParticleSystemQuad*emitter1=CCParticleSystemQuad::create("Particle/BurstPipe.plist");
- emitter1->setPosition(ccp(size.width/2,size.height/2));//设置发射粒子的位置
- emitter1->setAutoRemoveOnFinish(true);//完成后制动移除
- emitter1->setDuration(10);//设置粒子系统的持续时间秒
- this->addChild(emitter1,1);
@2——不使用plist 文件创建粒子系统
2.1重力式粒子系统/CCParticleSystemPoint 使用代码如下:
2.2【放射性粒子系统/CCParticleSystemQuad】
重力模式能够让粒子飞向或者远离一个中心点。这种的优势是它允许一个动态的,组织的效果。你可以用如下代码设置重力模式:
重力模式
在重力模式中,以下属性是合法的:
gravity(Point)。粒子系统的重力。
speed(float)。粒子们射出的速度。
speedVar(float)速度变量
tangencialAccel(float)粒子们的正切加速度
tangencialAccelVar(float)粒子们正切加速度的变量
radialAccel(float)粒子们的半径加速度。
radialAccelVar(float)粒子们半径加速度的变量
半径模式
半径模式能够让粒子在圆中旋转。也可以创造螺旋模式能让粒子向屏幕里屏幕外飞。你可以设置半径模式用下面的几行代码:
m_emitter->setEmitterMode(kCCParticleModeRadius);
// 设置环型运动模式的每秒旋转角度及相应的随机加成范围值
m_emitter->setRotatePerSecond(180); m_emitter->setRotatePerSecondVar(0);
半径模式有下列合法的属性:
startRadius (a float).粒子的开始半径
startRadiusVar (a float). 开始半径变量
endRadius(a float). 粒子的结束半径
endRadiusVar (a float).结束半径变量
rotatePerSecond (a float).围绕一个来源点的每秒旋转角度
rotatePerSecondVar (a float).每秒旋转角度变量
粒子们的常规属性:
startSize:粒子的初始尺寸(像素值)
startSizeVar
endSize:粒子的结束尺寸(如果你想让粒子的开始大小同结束大笑相同,就用一下kCCParticleStartSizeEqualToEndSize
endSizeVar
startColor :粒子开始颜色(ccColor4F)
startColorVar
endColor :粒子结束颜色
endColorVar
startSpin:仅用在CCParticleSystemQuad中,起始螺旋度
startSpinVar
endSpin:仅用在CCParticleSystemQuad中,结束螺旋度
endSpinVar
life粒子的生命生存时间,单位是秒
lifeVar
angle:粒子开始角度,float
angleVar
positon:CCPoint粒子位置
positonVar
centerOfGravity :CGPoint
系统通用属性:
emissionRate duration (a float):每秒有多少粒子被发射
duration (a float):粒子系统生存时间
blendFunc (a ccBlendFunc):用于系统渲染的OpenGL的渲染函数
positionType (a tCCPositionType).:使用kCCPositionTypeFree (默认值)属性可以自由的移动粒子们。或者使用kCCPositionTypeGrouped 让粒子们一组一组的移动。
texture (a CCTexture2D).粒子的纹理
cocos2dx已经为我们提供了非常多的粒子系统效果:
-- CCParticleSystem(所有粒子系统的父类) -- CCParticleSystemPoint、CCParticleSystemQuad (点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性) -- CCParticleExplosion :爆炸粒子效果 -- CCParticleFireworks :烟花粒子效果 -- CCParticleFire :火焰粒子效果 -- CCParticleFlower :花束粒子效果 -- CCParticleGalaxy :星系粒子效果 -- CCParticleMeteor :流星粒子效果 -- CCParticleSpiral :漩涡粒子效果 -- CCParticleSnow :雪粒子效果) -- CCParticleSmoke :烟粒子效果 -- CCParticleSun :太阳粒子效果 -- CCParticleRain :雨粒子效果