|
-- 會員 / 註冊 --
|
|
|
|
HTML5 2D游戲編程核心技術 ( 簡體 字) |
作者:(美)戴維·吉爾里(David Geary) | 類別:1. -> 程式設計 -> 網路編程 -> HTML |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 45698 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:11/1/2016 |
頁數:459 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111551294 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書是為希望使用HTML5進行2D游戲開發,且具備一定JavaScript編程經驗的開發人員而準備的。在本書中,筆者從零開始完整講解了一個復雜的橫向卷軸平臺視頻游戲的開發過程,并將該視頻游戲命名為“SnailBait”。在開發過程中,筆者沒有使用任何第三方圖形框架或游戲框架,因此讀者將從這本書中學會編程實現平滑動畫、Sprite爆炸、開發人員后門程序、游戲難易度設計等所有內容。 |
目錄:譯者序 前言 致謝 第1章 概述 1 1.1 Snail Bait游戲 3 1.2 HTML5游戲開發最佳實踐 8 1.2.1 窗口失去焦點時暫停游戲 8 1.2.2 窗口重獲焦點時實現倒計時功能 9 1.2.3 使用CSS實現UI特效 10 1.2.4 對游戲運行緩慢的狀態做出檢測和處理 11 1.2.5 添加社交功能 11 1.2.6 將所有游戲圖像放在單獨的sprite表單中 11 1.2.7 在服務器中存儲高分榜和實時游戲數據 13 1.3 特別功能 13 1.4 Snail Bait游戲中的HTML和CSS 15 1.5 開始Snail Bait游戲編程 21 1.6 本書中使用的JavaScript 23 1.7 小結 25 1.8 練習 26 第2章 原始素材和開發環境 27 2.1 使用開發者工具 28 2.1.1 控制臺 29 2.1.2 Chrome Canary的幀速率計數器 32 2.1.3 調試 34 2.1.4 時間線 35 2.1.5 Profiling 39 2.2 獲取資源 40 2.2.1 圖像 40 2.2.2 圖像處理 41 2.2.3 音效和音樂 41 2.2.4 動畫 42 2.3 使用CSS背景 43 2.4 生成小圖標 45 2.5 縮短編碼周期 46 2.6 小結 48 2.7 練習 48 第3章 圖形和動畫 49 3.1 使用HTML5 canvas元素繪制圖形和圖像 51 3.1.1 繪制背景 52 3.1.2 繪制跑步小人 53 3.1.3 繪制平臺 53 3.2 實現平滑的HTML5動畫 55 3.2.1 requestAnimationFrame()方法 57 3.2.2 requestAnimationFrame()的polyfill實現 57 3.3 實現游戲主循環 60 3.4 計算幀速率 61 3.5 滾動游戲背景 62 3.5.1 平移坐標系 62 3.5.2 滾動Snail Bait游戲的背景 65 3.6 制作基于時間的運動 67 3.7 反轉滾動方向 67 3.8 繪制動畫幀 68 3.9 使用視差產生視深的假象 68 3.10 小結 71 3.11 練習 71 第4章 游戲的基本架構 72 4.1 在JavaScript對象中封裝游戲函數 73 4.1.1 SnailBait的構造函數 74 4.1.2 SnailBait的原型 75 4.2 理解JavaScript語言中挑剔的this指針 77 4.3 處理鍵盤輸入 79 4.4 玩家按p鍵時暫停或者恢復游戲 81 4.5 凍結游戲,確保它精確地在暫停的位置恢復 82 4.6 在窗口失去焦點時暫停游戲 83 4.7 使用動態的倒計時來恢復一個暫停的游戲 84 4.7.1 向游戲玩家顯示提示板(簡短信息) 85 4.7.2 Snail Bait的倒計時 87 4.8 小結 89 4.9 練習 90 第5章 游戲加載動畫 91 5.1 定義Snail Bait游戲的窗口 93 5.2 使用CSS過渡讓元素淡入、淡出 96 5.2.1 讓元素淡入 97 5.2.2 讓元素淡出 98 5.2.3 snailbait-toast元素的CSS 99 5.2.4 顯示和隱藏提示板 100 5.3 讓擁有與CSS過渡屬性Opacity關聯的元素淡入、淡出 103 5.4 實現加載動畫 105 5.5 顯示游戲畫面 109 5.6 小結 112 5.7 練習 113 第6章 sprite對象 114 6.1 sprite對象 116 6.1.1 sprite對象的屬性 118 6.1.2 sprite對象的構造函數 119 6.1.3 sprite對象的方法 119 6.2 將sprite對象整合到游戲主循環中 121 6.3 實現sprite對象的artist對象 124 6.3.1 圖形artist對象 124 6.3.2 圖像artist對象 125 6.3.3 sprite圖像表單artist對象 125 6.3.4 定義sprite圖像表單單元格 128 6.4 創建和初始化游戲的sprite對象 130 6.5 使用元數據定義sprite對象 133 6.6 滾動sprite對象 136 6.7 小結 138 6.8 練習 138 第7章 sprite對象行為 140 7.1 行為基礎 142 7.2 跑步小人行為 143 7.3 跑步小人的跑動行為 146 7.4 輕量級行為 148 7.5 游戲獨立行為 150 7.6 組合行為 155 7.7 小結 159 7.8 練習 159 第8章 時間軸,第1部分:有限行為及線性運動 160 8.1 實現一個初始的跳躍行為算法 161 8.2 將處理跳躍行為的職責轉交給跑步小人 162 8.3 實現跳躍行為 164 8.4 使用秒表記錄動畫時間 165 8.5 重新定義跳躍行為 168 8.6 實現線性運動 170 8.6.1 上升階段 170 8.6.2 下降階段 171 8.7 暫停行為 173 8.8 小結 175 8.9 練習 175 第9章 時間軸,第2部分:非線性運動 176 9.1 理解時間及其衍生物 177 9.2 使用動畫計時器和緩變功能實現非線性跳躍 177 9.3 實現動畫計時器 179 9.4 實現緩變功能 181 9.5 微調緩變功能 184 9.6 實現真實的跳動行為 185 9.7 使行為隨機化 189 9.8 使用動畫計時器和緩變功能實現非線性顏色改變 190 9.9 小結 193 9.10 練習 193 第10章 時間軸,第3部分:時間系統 194 10.1 Snail Bait游戲的時間系統 195 10.2 創建和啟動時間系統 197 10.3 將時間系統整合進Snail Bait游戲中 198 10.3.1 使用時間系統驅動游戲動畫 198 10.3.2 實現使用時間系統修改游戲時間流的函數 199 10.3.3 在計算幀速率時分解時間比率 199 10.3.4 使用時間系統暫停和恢復游戲 200 10.4 重新定義秒表和動畫計時器的當前時間 202 10.5 實現時間系統 206 10.6 小結 208 10.7 練習 208 第11章 碰撞檢測 209 11.1 碰撞檢測過程 210 11.2 碰撞檢測技術 211 11.3 Snail Bait游戲中的碰撞檢測 212 11.3.1 sprite對象的碰撞矩形 212 11.3.2 跑步小人的碰撞行為 214 11.4 為碰撞檢測選擇碰撞候選對象 215 11.5 在跑步小人與其他sprite對象之間檢測碰撞 216 11.6 處理碰撞 217 11.7 優化碰撞檢測 220 11.7.1 改善包圍盒 220 11.7.2 使用空間分割方法 221 11.8 監測碰撞檢測的運行性能 222 11.9 編程實現碰撞檢測的邊界案例 223 11.10 小結 226 11.11 練習 226 第12章 重力 228 12.1 為跑步小人實現墜落行為 228 12.2 實現重力 230 12.2.1 跑步小人的墜落行為 232 12.2.2 計算初始下降速度 236 12.2.3 在跑步小人墜落過程中暫停游戲 237 12.3 最終版的碰撞檢測 237 12.4 小結 238 12.5 練習 239 第13章 sprite動畫和特殊效果 240 13.1 實現sprite動畫 241 13.2 創建特效 246 13.2.1 晃動游戲畫面 246 13.2.2 場景切換 248 13.3 編排效果 253 13.3.1 炸死蜜蜂 254 13.3.2 引爆按鈕 256 13.4 小結 258 13.5 練習 258 第14章 聲音和音樂 259 14.1 創建聲音和音樂文件 261 14.2 加載音樂和音效 262 14.3 設置聲音和音樂控件 263 14.4 播放音樂 264 14.5 循環播放音樂 265 14.6 播放音效 267 14.6.1 創建sprite音頻對象 270 14.6.2 定義音效對象 271 14.6.3 實現多聲道播放音效 272 14.7 打開和關閉聲音播放 279 14.8 小結 280 14.9 練習 280 第15章 移動設備 281 15.1 在移動設備上運行Snail Bait游戲 284 15.2 檢測移動設備 284 15.3 縮放游戲以適應移動設備 286 15.3.1 HTML5 viewport元標簽 287 15.3.2 以編程方式調整游戲畫面以適應移動設備屏幕 291 15.4 修改游戲動畫底部的控制說明 295 15.5 修改歡迎界面 295 15.5.1 實現歡迎提示 296 15.5.2 實現移動設備中的控制說明 301 15.5.3 實現移動設備版開始提示 305 15.5.4 顯示移動設備中的開始提示 306 15.6 添加觸控事件 307 15.7 在移動設備中處理音頻的方法 310 15.8 在主屏幕上添加啟動圖標,并以全屏模式運行游戲 312 15.9 小結 313 15.10 練習 313 第16章 粒子系統 314 16.1 排煙孔粒子系統 315 16.2 使用排煙孔粒子系統 318 16.2.1 定義排煙孔粒子系統數據 318 16.2.2 創建排煙孔粒子系統 318 16.2.3 將排煙孔粒子系統存入Snail Bait游戲的sprite對象數組中 319 16.2.4 在每個動畫幀中滾動排煙孔粒子系統 320 16.3 編程實現排煙孔粒子系統 321 16.3.1 把排煙孔粒子系統偽裝成sprite對象 321 16.3.2 組合火焰粒子 323 16.3.3 組合煙泡 327 16.4 暫停排煙孔粒子系統 337 16.5 小結 338 16.6 練習 338 第17章 用戶界面 339 17.1 記錄玩家游戲成績 340 17.2 增加游戲生命指示器 343 17.3 顯示游戲字幕 348 17.4 使用Tweet發布玩家游戲得分 354 17.5 當游戲運行緩慢時通知游戲玩家 357 17.5.1 監控幀速率 361 17.5.2 編程實現運行緩慢通知的事件處理句柄 363 17.6 編程實現通關動畫 364 17.7 小結 368 17.8 練習 368 第18章 開發者后門程序 370 18.1 Snail Bait游戲的開發者后門 372 18.2 開發者后門的HTML元素及CSS 373 18.3 顯示及隱藏開發者后門 375 18.4 更新開發者后門的元素 377 18.5 實現開發者后門的復選框 378 18.5.1 顯示及隱藏碰撞矩形 380 18.5.2 啟用或禁用運行緩慢通知 382 18.5.3 顯示或隱藏排煙孔粒子系統 383 18.5.4 更新開發者后門的復選框 383 18.6 實現開發者后門的滑動條 384 18.6.1 為開發者后門的滑動條定義HTML元素及CSS 386 18.6.2 在Snail Bait游戲的Java-Script代碼中訪問滑動條的讀數 387 18.6.3 創建并初始化開發者后門的滑動條 388 18.6.4 將運行緩慢的滑動條關聯到游戲中 389 18.6.5 將時間速率滑動條關聯到游戲中 389 18.6.6 將游戲關聯到時間速率滑動條上 390 18.6.7 在顯示開發者后門之前更新滑動條 391 18.7 實現開發者后門刻度尺 392 18.7.1 創建并訪問刻度尺的canvas元素 393 18.7.2 淡入淡出刻度尺 394 18.7.3 繪制刻度尺 395 18.7.4 更新刻度尺 396 18.7.5 拖動游戲畫面 397 18.8 小結 401 18.9 練習 401 第19章 服務器端開發:內部指標、高分記錄及部署 403 19.1 Node.js及socket.io簡介 404 19.2 在Snail Bait游戲中引入socket.io 406 19.3 創建一個簡單的服務器 407 19.4 在服務器端創建套接字 407 19.5 啟動服務器 408 19.6 在客戶端創建一個套接字并連接到服務器 408 19.7 記錄游戲內部指標 409 19.8 管理高分記錄 412 19.8.1 實現高分記錄的用戶界面 413 19.8.2 檢索服務器中的高分記錄 415 19.8.3 在客戶端顯示高分記錄 418 19.8.4 監視姓名輸入 419 19.8.5 驗證并將高分記錄存儲到服務器 420 19.8.6 重新顯示高分記錄 422 19.8.7 開始新游戲 422 19.9 部署Snail Bait游戲 423 19.10 將文件上傳到服務器 425 19.11 小結 426 19.12 練習 426 第20章 后記:Bodega Revenge游戲 428 20.1 設計用戶界面 430 20.2 創建sprite表單 433 20.3 實例化游戲 433 20.4 實現sprite對象 434 20.4.1 炮塔 434 20.4.2 炮彈 437 20.4.3 小鳥 439 20.5 實現sprite對象的行為 441 20.5.1 炮塔的行為 442 20.5.2 炮彈的行為 447 20.5.3 小鳥的行為 450 20.6 繪制剩余炮彈指示器 454 20.7 為移動設備實現觸摸控制 456 20.8 小結 458 20.9 練習 459 |
序: |
|