Skip to content

打飞机小游戏,主要用于培养前端工程师面向对象编程思维,基于ES6类的概念实现

License

Notifications You must be signed in to change notification settings

pacez/PlaneGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlaneGame

打飞机小游戏,主要用于培养前端工程师面向对象编程思维,基于ES6类的概念实现。 请使用chrome移动设备模拟窗口查看。

本游戏除了加载es6必要的babel运行时,不依赖第三方功能性库。


开发:

  1. 安装依赖:yarn 或者 npm i
  2. 启动服务:yarn dev 或者 npm run dev

执行完,会自动打开浏览器进入开发预览页,具体基本的热更新能力。


构建:

  1. 构建命令:yarn build 或者 npm run build

构建完,会在根目录下生成用于生产环境的dist目录。


思考步骤:

STEP 1: 将打飞机游戏,抽象对象概念

  1. 抽象类:游戏本身。
  2. 实体类:飞机,子弹。
  3. 基于飞机的扩展类: 敌机,玩家飞机

STEP 2: 对象行为抽象思考

  1. 游戏: 初始化时,生产一架玩家飞机,通过定时器生产敌机;在敌机被摧毁时,修改游戏分值,杀敌数据;在玩家飞机被催毁时,修改游戏状态为失败。
  2. 玩家飞机: 具备火控能力,具备可控移动能力。
  3. 敌机飞机: 接收攻击目标——玩家飞机(target), 与target做碰撞检测,判断target是否被摧毁,被摧毁,执行destory回调,改为游戏状态为失败; 从target可以获取发射的子弹实体队列,通过对子弹实体做碰撞检测,可以判断是否被击毁,被击毁提供destory回调,可以在游戏类中,设置分值,杀敌数据;

STEP 3: 思考对象大概的属性与方法实现,思考逻辑关联。

  1. 游戏类:游戏数据(杀敌数,总得分,游戏状态), 状态管理:操作数据,停止生产敌机,
  2. 子弹类:创建子弹,设置并缓存子弹基本属性(位置 ,尺寸),具备设置子弹位置,销毁方法。
  3. 飞机类:创建飞机,设置并缓存飞机基本属性(位置 ,尺寸),具备设置飞机位置,开火,停火,销毁方法。 开火,停火能力,通过创建子弹实例实现。
  4. 玩家飞机:基于飞机类扩展,具备飞机类所有能力与属性,私有方法:控制飞机方向方法实现,火控方法(开火、停火触发方法),
  5. 敌机飞机:基于飞机类扩展,具备飞机类所有能力与属性,私有属性:敌机类型,私有方法:碰撞检测(检测撞毁玩家飞机,检测被玩家飞机子弹击中),

  • 该游戏仅实现了打飞机主流程。 未完善细节:比如成功闯关,失败后重置,成绩单等,留给感兴的小伙伴自己动手开发,灵活运用思维模式。
  • 基本思路,具体细节实现,需要大家多思考。 源码注释不够或有无法理解的地方,可以提issues给我。

About

打飞机小游戏,主要用于培养前端工程师面向对象编程思维,基于ES6类的概念实现

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published