? es6 + canvas 開源 蓋樓小遊戲 完整程式碼註釋 從零教你做遊戲(一)

iamkun發表於2018-03-21

蓋樓遊戲

? es6 + canvas 開源 蓋樓小遊戲 完整程式碼註釋 從零教你做遊戲(一)

一個基於 Canvas 的蓋樓遊戲

Demo 預覽

? es6 + canvas 開源 蓋樓小遊戲 完整程式碼註釋 從零教你做遊戲(一)

線上預覽地址 (Demo Link)

手機裝置可以掃描下方二維碼

? es6 + canvas 開源 蓋樓小遊戲 完整程式碼註釋 從零教你做遊戲(一)

地址 ?

喜歡這個遊戲可以給個?star?鼓勵一下嗎 github.com/iamkun/towe…

Game Rule 遊戲規則

以下為預設遊戲規則,也可參照下節自定義遊戲引數

  • 每局遊戲生命值為3,掉落一塊樓層生命值減1,掉落3塊後遊戲結束,單局遊戲無時間限制

  • 成功蓋樓加25分,完美蓋樓加50分,連續完美蓋樓額外加25分,樓層掉落扣除生命值1,單局遊戲共有3次掉落機會

栗子:第一塊完美蓋樓加50分,第二塊連續完美蓋樓加75分,第三塊連續完美蓋樓加100分,依此類推……

? es6 + canvas 開源 蓋樓小遊戲 完整程式碼註釋 從零教你做遊戲(一)

Customise 自定義

git clone https://github.com/iamkun/tower_game.git
cd tower_game
npm install
npm start
複製程式碼

開啟 http://localhost:8082

  • 圖片、音訊資源可以直接替換 assets 目錄下對應的資原始檔
  • 遊戲規則可以修改 index.html 檔案 L480option 物件

Option 自定義選項

可以使用以下 option 表格裡的引數,完成遊戲自定義,所有引數都是非必填項

Option Type Description
width number 遊戲主畫面寬度
height number 遊戲主畫面高度
canvasId string Canvas 的 DOM ID
soundOn boolean 是否開啟聲音
successScore number 成功蓋樓分數
perfectScore number 完美蓋樓額外獎勵分數
hookSpeed function 鉤子平移速度
hookAngle function 鉤子擺動角度
landBlockSpeed function 下方樓房橫向速度
setGameScore function 當前遊戲分數hook
setGameSuccess function 當前遊戲成功次數hook
setGameFailed function 當前遊戲失敗次數hook

hookSpeed

鉤子平移速度 函式接收兩個引數,當前成功樓層和當前分數,返回速度數值

function(currentFloor, currentScore) {
  return number
}
複製程式碼

hookAngle

鉤子擺動角度 函式接收兩個引數,當前成功樓層和當前分數,返回角度數值

function(currentFloor, currentScore) {
  return number
}
複製程式碼

landBlockSpeed

下方樓房平移速度 函式接收兩個引數,當前成功樓層和當前分數,返回速度數值

function(currentFloor, currentScore) {
  return number
}
複製程式碼

setGameScore

當前遊戲分數hook 函式接收一個引數,當前遊戲分數

function(score) {
  // your logic
}
複製程式碼

setGameSuccess

當前遊戲成功次數hook 函式接收一個引數,當前遊戲成功次數

function(successCount) {
  // your logic
}
複製程式碼

setGameFailed

當前遊戲失敗次數hook 函式接收一個引數,當前遊戲失敗次數

function(failedCount) {
  // your logic
}
複製程式碼

License

MIT license.

相關文章