粒子系统
这里的粒子系统指的是2d游戏里面的发射类技能飞行效果的实现.
粒子系统主要包括以前实现
Particle 粒子
也就是飞行技能的一个单位对象,一发炮弹,子弹等特效
基础属性有:
- 粒子年龄
- 粒子是否活着
- 粒子位置
- 粒子角度
这是一个继承了基础粒子类的子类飞行粒子,保存了当前技能配置与目标id
BaseParticleGenerator 粒子生成器
有了粒子对象就要有负责创建的地方,有的技能并不是只发射1个特效.例如连续开枪,下火雨等.这个粒子生成器简单的说就是用来实例化粒子类的.
BaseParticleEmitter 基础粒子发射器
发射器负责调用生成器产生粒子并把粒子发射出去,所以发射器里包含生成器的引用,还有发射的位置
由于有不同的发射方式.发射器也进行了分类:
- PointParticleEmitter 坐标点粒子发射器
- DirectionMissileParticleEmitter 方向飞行粒子发射器
- TargetMissileParticleEmitter 目标飞行道具发射器
BaseParticleUpdater 基础粒子更新器
通过粒子生成器创建了粒子对象,然后需要让粒子运动起来, 基础粒子更新器通过帧频调用updateParticle方法修改粒子属性.使粒子产生各种想要的运动轨迹.
按照粒子的变化方式又可分为多种粒子更新器:
- AccelerateParticleUpdater 加速度粒子更新器
- FrictionParticleUpdater 摩擦力粒子更新器
- GravityParticleUpdater 重力粒子更新器
- RotateParticleUpdater 旋转粒子更新器
- TargetMissileParticleUpdater 目标飞行粒子更新器
BaseParticleCleaner 粒子清除器
粒子达到效果后,需要清除.否则会一只在场景中显示,所以需要粒子清除器进行清除
根据清除时机条件不同,可以把粒子清理分为:
- AgeLimitParticleCleaner 年龄限制粒子清除器
- DistanceLimitParticleCleaner 距离限制粒子清除器
- RangeLimitParticleCleaner 范围限制粒子清除器
ParticleSystem 粒子系统
粒子对象 发射粒子 生成粒子… 这些类都有了.我们需要一个类把他们统一管理整合起来.粒子系统就是干这个的.
最基础的就是要把各个粒子功能类保存在一起
然后我们可以继承基础类进一步实现粒子的添加移除发射等.不用去关心具体的粒子功能类.
MissileManager 飞行道具管理器
在游戏使用中.我们会用到多种类型的粒子,我们可以把这些粒子做一下统一管理.外面只需要调用管理器发射道具.至于道具是需要哪个粒子器处理.由管理器统一处理.
大概的实现结构就是这样.粒子系统就讲到这.