分享下,结合面向对象开发
和 Canvas
,来完成的 Canvas 射击小游戏
。css
如下是已经实现的射击游戏的 demo 地址,你们能够参考该游戏进行开发: 代码 演示地址html
游戏共分为四种状态:游戏准备
->游戏进行
->游戏成功
或者游戏失败
git
首次打开页面,将会展示游戏准备界面,界面有游戏标题和和游戏描述以及开始游戏按钮。github
在每一关卡中,成功消灭全部的怪兽,则显示游戏经过成功。能够点击“再玩一次” 回到游戏进行界面web
在游戏中,当怪兽成功突破到飞机的竖直位置,则显示游戏经过失败。能够点击“从新开始” 回到游戏进行界面canvas
游戏场地尺寸为 700 * 600,游戏场地分红三个部分:函数
场景边距区域
绿色的表示为边距区域,边距长度为30怪兽移动区域
: 蓝色区域,尺寸为 640 * 440飞机移动区域
: 黄色区域表示飞机移动区域,尺寸为 640 * 100游戏中飞机元素是咱们须要操做的主人公,如下是飞机元素须要注意的内容:spa
img/plane.png
飞机移动区域
经过点击空格键,飞机将射击出子弹元素,飞机可同时射出多个子弹。如下是子弹元素须要注意的内容:设计
plane.x + (plane.width / 2)
plane.y
游戏中怪兽元素共有两种状态(存活和死亡),存活时怪兽会移动,死亡时会绽开成烟花。如下是怪兽元素须要注意的内容:3d
img/enemy.png
怪兽移动区域的
左右边界时,下一帧则往下移动,移动的距离为 50,以下图所示:怪兽移动区域的
底部边界时,则游戏结束:img/boom.png
(爆炸过程建议绘制三帧,即怪兽死亡过程持续3帧)怪兽移动区域的
底部边界时,则游戏结束在游戏场景左上角有一个分数元素,如下是分数元素须要注意的内容:
增长游戏关卡,实现不一样的关卡有不一样的难度(如每一关相对上一关增长一行怪兽)
游戏可经过修改配置,来修改游戏(以下图所示)
/** * 游戏相关配置 * @type {Object} */
var CONFIG = {
status: 'start', // 游戏开始默认为开始中
level: 1, // 游戏默认等级
totalLevel: 6, // 总共6关
numPerLine: 6, // 游戏默认每行多少个怪兽
canvasPadding: 30, // 默认画布的间隔
bulletSize: 10, // 默认子弹长度
bulletSpeed: 10, // 默认子弹的移动速度
enemySpeed: 2, // 默认敌人移动距离
enemySize: 50, // 默认敌人的尺寸
enemyGap: 10, // 默认敌人之间的间距
enemyIcon: './img/enemy.png', // 怪兽的图像
enemyBoomIcon: './img/boom.png', // 怪兽死亡的图像
enemyDirection: 'right', // 默认敌人一开始往右移动
planeSpeed: 5, // 默认飞机每一步移动的距离
planeSize: {
width: 60,
height: 100
}, // 默认飞机的尺寸,
planeIcon: './img/plane.png',
};
复制代码