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);