美文网首页JavaScript 进阶营
Javascript 面向对象编程特训 - 4

Javascript 面向对象编程特训 - 4

作者: 求愚 | 来源:发表于2017-07-30 20:40 被阅读93次
Javascript 特训-5

加上回国,前前后后拖了2个月,我第一个面向对象的程序终于完成了,撒花。

游戏名:大战篮球场

Game Screenshot

Github 线上地址:请点这里

JS 结构:

  • resources.js - 用于预加载图片
  • app.js - 用于定义游戏对象
  • engine.js - 用于控制游戏规则

下面梳理一下我设计该项目的思路:

数月前,看到一群老年人和年轻人为争夺一篮球场,发生言语争执,继而上升为肢体冲突。媒体上遂一片哗然,多数指责老年人的素质不够。由于此社会热点,遂想出了该游戏的规则。

游戏规则:控制人物移动来收集篮球,同时躲避大妈,篮球收集完获胜,生命值消耗完则失败。

接下来是用 Sketch 画了游戏草图,定下各项尺寸,方便之后使用代码定位图片位置。

Sketch 草图

接下来便是通过代码实现游戏的各项规则,难点主要是面向对象的思路和 Canvas 技术 (以前都没接触过)。下面以 Player 进行举例。

属性:

  1. Player 有 x, y, width, height, image, life 等基本属性
  2. 由于要还原游戏,则还需 originalX, originalY, originalLife 属性
  3. 由于需要通过 Player 串联整个游戏,还需要有 success, score, gameOver 等控制游戏的属性

方法:

  1. move(), 控制 Player 的上下左右,需要有函数判断是否碰撞和是否有障碍物阻挡
  2. reset(), 还原一切 Player 属性
  3. update(), 规定时间内更新 Player 的一切属性
  4. render(), 更新属性后,重新渲染画面给予用户视觉反馈

接下来就是用代码把每个功能挨个实现。在这个过程中会遇到无数个 bug,切记耐心,多用 Google 搜索,多用 Chrome 设置断点 debug,相信问题最后终能解决的。

当游戏跑起来后,不要高兴的太早,还有最后一步,调整游戏的难度。难度太低用户会觉得没意思,难度太大用户没有动力。这时候就需要把自己带入游戏,反复的玩,根据反馈反复的改变障碍位置和大妈移动速率的参数,最后达到一个觉的合适的游戏难度。

Over, 放在 Github 上给同学朋友们玩吧。

最后的最后,如果有设计师想对该游戏美术方面 fork 一下的话,欢迎联系我,我们一起把它变得更有意思。

经过这个项目的锻炼,对自己的代码能力有了更多的信心。下一步打算试着使用 Vue.js 把自己的个人网站重构一遍。

Reference

Official Udacity Arcade Game: https://github.com/jshanks24/Udacity-Arcade-Game
Joey Udacity Arcade Game: https://github.com/JoeyQiang/udacity-arcade-game

相关文章

  • Javascript 面向对象编程特训 - 4

    加上回国,前前后后拖了2个月,我第一个面向对象的程序终于完成了,撒花。 游戏名:大战篮球场 Github 线上地址...

  • 构造函数与 new 命令

    JavaScript 语言具有很强的面向对象编程能力,本章介绍 JavaScript 如何进行面向对象编程。 对象...

  • Javascript面向对象编程

    阮一峰文档备忘 Javascript 面向对象编程(一):介绍封装 Javascript 面向对象编程(二):介绍...

  • JS创建对象方案(一)

    5.1 JavaScript的面向对象 JavaScript其实支持多种编程范式的,包括函数式编程和面向对象编程:...

  • JavaScript学习笔记(一)

    Javascript面向对象 1. 面向对象编程介绍 1.1 两大编程思想 面向过程 & 面向对象 1.2 面向过...

  • JavaScript学习

    javascript面向对象 初学javascript,感觉javascript的面向对象编程还是很有意思的,在此...

  • javascript的面向对象

    javascript面向对象 初学javascript,感觉javascript的面向对象编程还是很有意思的,在此...

  • ajax

    1. 面向对象 javascript 具有面向过程,面向对象,函数式编程的特点 javascript 重要 原型/...

  • javascript 面向对象编程

    引自:阮一峰的博客Javascript面向对象编程(一):封装Javascript面向对象编程(二):构造函数的继...

  • javascript面向对象编程

    javascript面向对象编程一(封装) 通俗易懂绝对干货 JS面向对象编程

网友评论

    本文标题:Javascript 面向对象编程特训 - 4

    本文链接:https://www.haomeiwen.com/subject/fzrklxtx.html