ParticleEmitter类:发射形状
CircleParticleEmitter(final float pCenterX, final float pCenterY, final float pRadius);圆形发射器
CircleParticleEmitter(final float pCenterX, final float pCenterY, final float pRadiusX, final float pRadiusY);椭圆发射器
CircleOutlineParticleEmitter;与上面相同,只是发射位置为图形边缘
RectangleParticleEmitter;矩形发射器,当长或宽为0时,为一条直线
PointParticleEmitter;点发射器
ParticleInitializer类:初始设定
VelocityParticleInitializer:设定粒子初始速度
RotationParticleInitializer:旋转角度
ColorParticleInitializer:颜色
。。。。。。
ParticleModifier类:Particle修改器
与Entity修改器一样
setParticlesSpawnEnabled();启动或生成粒子。
例:
CircleParticleEmitter emitter=new CircleParticleEmitter(CAMERA_WIDTH*0.5f, CAMERA_HEIGHT*0.5f, 40);
SpriteParticleSystem particlesystem=new SpriteParticleSystem(emitter, 100, 100, 500, bg2, getVertexBufferObjectManager());
particlesystem.addParticleInitializer(new ColorParticleInitializer(Color.RED));
particlesystem.addParticleInitializer(new AlphaParticleInitializer(0));
particlesystem.addParticleInitializer(new BlendFunctionParticleInitializer(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE));
particlesystem.addParticleInitializer(new VelocityParticleInitializer(-5, 5, 20, 10));// 前两个值为横向加速度的取值范围,后面两个值为纵向加速度取值范围
particlesystem.addParticleInitializer(new RotationParticleInitializer(0.0f, 360.0f));// 旋转角度取值范围
particlesystem.addParticleInitializer(new ExpireParticleInitializer(6));// 单个粒子持续时间
particlesystem.addParticleModifier(new ScaleParticleModifier(0, 5, 1.0f, 2.0f));// 粒子产生过程0-5秒从原始大小变为2倍大小
particlesystem.addParticleModifier(new ColorParticleModifier(0, 3, 1, 1, 0, 0.5f, 0, 0));// 0-3秒间的颜色变化
particlesystem.addParticleModifier(new ColorParticleModifier(4, 6, 1, 1, 0.5f, 1, 0, 1));// 4-6秒间的颜色变化
particlesystem.addParticleModifier(new AlphaParticleModifier(0, 1, 0, 1));// 0-1秒间透明度变化
particlesystem.addParticleModifier(new AlphaParticleModifier(5, 6, 1, 0));// 5-6秒间透明度变化
scene.attachChild(particlesystem);