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);
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);
相关文章推荐
- andengine 读取瓦片地图
- andengine 按钮的监听
- andengine 创建菜单的另一种方法
- 界面跳转弹出动画
- spring事务的传播特性(7种)
- 菜单的创建 并加入实体菜单键…
- 静态内部类和非静态内部类的区别
- 菜单的创建
- PhysicsWorld 物理规则
- 异步复位和同步复位
- 人物绕着屏幕走
- 飞机
- 监听屏幕点击次数并显示
- andengine背景设置另一种方法
- Struts2学习(四)OGNL标签介绍
- andengine背景
- Java跳出循环-break和continue语句
- Xcode中Build Configuration配置使用
- 深入理解RxJava的Side Effect Methods
- C++中输出指定位数的小数