您的位置:首页 > 其它

andengine 粒子系统

2016-07-27 17:51 155 查看
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); 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: