分享下,結合面向對象開發
和 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',
};
複製代碼