前 言
導(dǎo) 言
第1章 問(wèn)答遊戲 1
1.1 第一步:出題 1
1.2 第二步:隱藏題目 8
1.3 第三步:重現(xiàn)題目 9
1.4 第四步:引入各種程式庫(kù) 11
1.5 第五步:判斷玩家所選答案是否正確 15
1.6 小結(jié) 19
第2章 文字冒險(xiǎn)遊戲 20
2.1 第一步:設(shè)計(jì)頁(yè)面樣式 21
2.2 第二步:實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn) 25
2.3 第三步:新增道具欄及道具拖放功能 27
2.4 第四步:新增複雜的互動(dòng)功能 35
2.5 第五步:新增歷史記錄導(dǎo)航功能 44
2.6 第六步:新增精彩的結(jié)局 46
2.7 小結(jié) 48
第3章 派對(duì)遊戲 50
3.1 第一步:採(cǎi)用atom.js創(chuàng)建範(fàn)例遊戲 50
3.2 第二步:用canvas元素繪圖 56
3.3 第三步:繪製鼠洞 58
3.4 第四步:繪製鼴鼠 60
3.5 第五步:將鼴鼠放入鼠洞 63
3.6 第六步:令鼴鼠從洞中鑽出來(lái) 65
3.7 第七步:使玩家可敲擊鍵盤來(lái)打鼴鼠 67
3.8 HTML5的[audio]標(biāo)籤並不盡如人意 70
3.9 小結(jié) 72
第4章 解謎遊戲 73
4.1 第一步:用easel.js來(lái)渲染 74
4.2 第二步:渲染多個(gè)方塊 78
4.3 第三步:建立成對(duì)出現(xiàn)的同色方塊 81
4.4 第四步:配對(duì)並消除同色方塊 83
4.5 第五步:隱藏與翻轉(zhuǎn)圖片 85
4.6 第六步:勝負(fù)判定 87
4.7 第七步:快取與效能最佳化 91
4.8 第八步:將方塊配對(duì)遊戲改為字母認(rèn)讀遊戲 93
4.9 小結(jié) 99
第5章 平臺(tái)遊戲 100
5.1 初識(shí)melon.js 100
5.2 第一步:建立瓦片地圖 101
5.3 第二步:?jiǎn)?dòng)遊戲 102
5.4 第三步:加入遊戲角色 105
5.5 第四步:建構(gòu)碰撞圖層 107
5.6 第五步:行走與跳躍 108
5.7 第六步:標(biāo)題畫面 110
5.8 第七步:新增可供玩家收集的物品 112
5.9 第八步:新增敵人 113
5.10 第九步:新增能力提昇道具 115
5.11 第十步:新增勝負(fù)判定機(jī)制並顯示遊戲資訊 116
5.12 小結(jié) 118
第6章 格鬥遊戲 120
6.1 第一步:初識(shí)game.js 120
6.2 第二步:?jiǎn)为?dú)繪製精靈表中的各個(gè)精靈 123
6.3 第三步:處理兩位玩家的輸入 124
6.4 第四步:移動(dòng)與變形 127
6.5 第五步:不要使兩位玩家的輸入互相阻塞 130
6.6 第六步:用位元遮罩記錄按鍵狀態(tài) 134
6.7 第七步:用掩碼來(lái)偵測(cè)碰撞 137
6.8 第八步:令兩個(gè)遊戲角色可以互相攻擊對(duì)方 140
6.9 小結(jié) 145
第7章 飛行射擊遊戲 146
7.1 與渲染有關(guān)的準(zhǔn)備知識(shí) 146
7.2 第一步:初識(shí)gameQuery 148
7.3 第二步:新增「敵機(jī)」 150
7.4 第三步:創(chuàng)建己方戰(zhàn)機(jī) 153
7.5 第四步:處理玩家與敵人的碰撞 156
7.6 第五步:發(fā)射子彈 157
7.7 第六步:提供玩家多種武器 159
7.8 小結(jié) 162
第8章 第一人稱射擊遊戲 164
8.1 第一步:初識(shí)Jaws 164
8.2 第二步:建立二維地圖 166
8.3 第三步:增添玩家 169
8.4 第四步:用光線投射技術(shù)繪製俯視圖 173
8.5 第五步:用光線投射技術(shù)實(shí)現(xiàn)偽三維效果 177
8.6 第六步:為玩家配備相機(jī) 180
8.7 第七步:裝飾遊戲場(chǎng)景 184
8.8 第八步:新增同伴 188
8.9 小結(jié) 195
第9章 角色扮演遊戲 197
9.1 第一步:初識(shí)enchant.js 197
9.2 第二步:建立地圖 199
9.3 第三步:增添玩家 202
9.4 第四步:新增碰撞層 207
9.5 第五步:繪製狀態(tài)畫面 209
9.6 第六步:與NPC對(duì)話 212
9.7 第七步:繪製道具欄 215
9.8 第八步:開(kāi)設(shè)道具店 218
9.9 第九步:實(shí)現(xiàn)戰(zhàn)鬥介面 226
9.10 第十步:透過(guò)HTML5的本地儲(chǔ)存API來(lái)儲(chǔ)存遊戲進(jìn)度 236
9.11 小結(jié) 238
第10章 即時(shí)戰(zhàn)略遊戲 240
10.1 伺服器 240
10.2 第一步:配置Node 243
10.3 第二步:用socket.io實(shí)現(xiàn)即時(shí)通訊 246
10.4 第三步:用crafty.js建立Isometric地圖 249
10.5 第四步:繪製棋子 251
10.6 第五步:移動(dòng)棋子 255
10.7 第六步:使玩家只能控制己方棋子,並將對(duì)手棋子上面的圖案隱藏起來(lái) 258
10.8 第七步:實(shí)現(xiàn)碰撞偵測(cè),令玩家能吃掉對(duì)手棋子並看到其圖案 264
10.9 小結(jié) 268
第11章 如何持續(xù)提升遊戲開(kāi)發(fā)水準(zhǔn) 270
11.1 本書已經(jīng)講過(guò)的內(nèi)容 270
11.2 接下來(lái)應(yīng)該學(xué)習(xí)的內(nèi)容 271
附錄A JavaScript基礎(chǔ) 273
附錄B 程式碼品質(zhì)控制 280
附錄C 資源 285?