看ParticleSystemSimpleExample,看得眼冒金星也没有看出来为什么那写笑脸会从左下角出来,并以抛物线的轨迹在东。实在没办法了,觉得调试一下试试看,发现实际跑出来的和那个笑脸的不一样,坑嗲啊。
网上查了一下粒子系统的定义,感觉应该是这么回事:粒子系统是指将粒子赋予一定的物理模型,然后通过大量粒子来模拟各种视觉效果,如水波、烟云、火花、爆炸等等。
andengine中的粒子系统被分为粒子、容器、发射器、初始化器和更新器:
1、Particle
实际粒子,支持生存时间。通过在Sprite的基础上添加生存时间和PhysicsHandler来实现。PhysicsHandler负责Particle的位置更形。
2、ParticleSystem
Particle的容器,负责Particle的生成、初始化、更新、描画与回收。管理了Particle的数量、生存时间、发射器、初始化器、更新器和更新管理、描画管理。
3、IParticleEmitte
Particle的发射器,其实是计算Particle的初始位置,提供了以下几种实现:
・PointParticleEmitter:直接将原点作为坐标
・CircleOutlineParticleEmitter:在圆的边框内生成随即坐标
・CircleParticleEmitter:在原点的半径范围内生成随即坐标
・RectangleOutlineParticleEmitter:四边形四个顶点范围内生成随即坐标
・RectangleParticleEmitter:四边形范围内生成随即坐标
4、IParticleIntializer
Particle的初始化器,负责Particle的初始属性的设定。类的体系也是和Modifier一样,分为有一个值、两个值、三个值得初始化。提供了以下几种实现:
・RototionInitializer:旋转
・AlphaInitializer:透明度
・AccelerationInitializer:加速度
・GravityInitializer:重力
・VelocityInitializer:速度
・ColorInitializer:颜色
5、IParticleModifier
Particle的更新器,根据当前生命值更新粒子的状态,类的体系也分为一个值、两个值、三个值的更新。提供了以下几种实现:
・RotationModifier:旋转
・AlphaModifier:透明度
・ScaleModifier:缩放
・ColorModifier:颜色
・ExpireModifier:生命(随机生存时间)
・OffCameraExpireModifier:移出Camera就判定为死亡
andengine已经搭好了粒子系统的体系,剩下的就是利用发射器、初始化器、更新器来组合自己的粒子系统了。