一个H5游戏的开发(十)

粒子系统

    • Particle 粒子
    • BaseParticleGenerator 粒子生成器
    • BaseParticleEmitter 基础粒子发射器
    • BaseParticleUpdater 基础粒子更新器
    • BaseParticleCleaner 粒子清除器
    • ParticleSystem 粒子系统
    • MissileManager 飞行道具管理器

这里的粒子系统指的是2d游戏里面的发射类技能飞行效果的实现.
粒子系统主要包括以前实现

Particle 粒子

也就是飞行技能的一个单位对象,一发炮弹,子弹等特效
基础属性有:

  • 粒子年龄
  • 粒子是否活着
  • 粒子位置
  • 粒子角度
    一个H5游戏的开发(十)_第1张图片
    这是一个继承了基础粒子类的子类飞行粒子,保存了当前技能配置与目标id
    一个H5游戏的开发(十)_第2张图片

BaseParticleGenerator 粒子生成器

有了粒子对象就要有负责创建的地方,有的技能并不是只发射1个特效.例如连续开枪,下火雨等.这个粒子生成器简单的说就是用来实例化粒子类的.
一个H5游戏的开发(十)_第3张图片
一个H5游戏的开发(十)_第4张图片

BaseParticleEmitter 基础粒子发射器

发射器负责调用生成器产生粒子并把粒子发射出去,所以发射器里包含生成器的引用,还有发射的位置

一个H5游戏的开发(十)_第5张图片
由于有不同的发射方式.发射器也进行了分类:

  • PointParticleEmitter 坐标点粒子发射器
  • DirectionMissileParticleEmitter 方向飞行粒子发射器
  • TargetMissileParticleEmitter 目标飞行道具发射器

BaseParticleUpdater 基础粒子更新器

通过粒子生成器创建了粒子对象,然后需要让粒子运动起来, 基础粒子更新器通过帧频调用updateParticle方法修改粒子属性.使粒子产生各种想要的运动轨迹.
一个H5游戏的开发(十)_第6张图片
按照粒子的变化方式又可分为多种粒子更新器:

  • AccelerateParticleUpdater 加速度粒子更新器
  • FrictionParticleUpdater 摩擦力粒子更新器
  • GravityParticleUpdater 重力粒子更新器
  • RotateParticleUpdater 旋转粒子更新器
  • TargetMissileParticleUpdater 目标飞行粒子更新器

BaseParticleCleaner 粒子清除器

粒子达到效果后,需要清除.否则会一只在场景中显示,所以需要粒子清除器进行清除
一个H5游戏的开发(十)_第7张图片
根据清除时机条件不同,可以把粒子清理分为:

  • AgeLimitParticleCleaner 年龄限制粒子清除器
  • DistanceLimitParticleCleaner 距离限制粒子清除器
  • RangeLimitParticleCleaner 范围限制粒子清除器

ParticleSystem 粒子系统

粒子对象 发射粒子 生成粒子… 这些类都有了.我们需要一个类把他们统一管理整合起来.粒子系统就是干这个的.
最基础的就是要把各个粒子功能类保存在一起
一个H5游戏的开发(十)_第8张图片
然后我们可以继承基础类进一步实现粒子的添加移除发射等.不用去关心具体的粒子功能类.
一个H5游戏的开发(十)_第9张图片
一个H5游戏的开发(十)_第10张图片

MissileManager 飞行道具管理器

在游戏使用中.我们会用到多种类型的粒子,我们可以把这些粒子做一下统一管理.外面只需要调用管理器发射道具.至于道具是需要哪个粒子器处理.由管理器统一处理.
一个H5游戏的开发(十)_第11张图片
一个H5游戏的开发(十)_第12张图片
大概的实现结构就是这样.粒子系统就讲到这.

你可能感兴趣的:(html5,typescript,游戏开发,游戏引擎,项目架构)