HTML5 Canvas基礎教程

HTML5 Canvas基礎教程

《HTML5 Canvas基礎教程》是人民郵電出版社出版的圖書,作者是Rob Hawkes。

內容簡介

《HTML 5 Canvas   基礎教程》從HTML5和JavaScript(以及jQuery)的基礎知識講起,全面介紹了HTML5 Canvas的各種特性,包括渲染上下文、坐標系統、繪製圖形、保存和恢復畫布狀態,以及變形、合成、處理圖像和視頻等,讓讀者對Canvas建立起完整的認識。隨後討論了動畫循環、記憶形狀、模擬運動、碰撞檢測等基本而又重要的概念,帶領讀者溫習了必要的數學和物理知識。通過帶領讀者動手開發“太空保齡球”和“躲避小行星”這兩款小遊戲,讓讀者掌握開發遊戲的基本流程,學會回響用戶操作、創造虛擬環境、循環利用對象、設計計分系統等遊戲開發必備的知識。  

目錄

目 錄

第1章 HTML5簡介 1

1.1 HTML簡史 1

1.2 為什麼需要HTML5 2

1.2.1 問題 2

1.2.2 解決問題 2

1.3 HTML5的新特性 3

1.3.1 結構和內容元素 3

1.3.2 表單 6

1.3.3 媒體元素 7

1.4 剖析HTML5頁面的結構 11

1.5 對HTML5的誤解 16

1.5.1 CSS3誤解 16

1.5.2 Web Fonts誤解 17

1.5.3 Geolocation誤解 17

1.5.4 SVG誤解 17

1.5.5 Web Storage誤解 18

1.5.6 Web Workers誤解 18

1.5.7 WebSocket誤解 18

1.6 小結 19

第2章 JavaScript基礎 20

2.1 JavaScript概述 20

2.2 jQuery 21

2.2.1 jQuery是什麼 21

2.2.2 為什麼要使用它 21

2.2.3 這是在誤導你嗎 22

2.2.4 是否不需要理解純JavaScript 22

2.2.5 如何使用jQuery 22

2.3 在HTML頁面上添加JavaScript 23

2.4 在頁面載入之後運行JavaScript 25

2.4.1 錯誤的方法(window.onload事件) 26

2.4.2 冗長的方法(DOM) 26

2.4.3 簡單的方法(jQuery方法) 27

2.5 變數與數據類型 28

2.5.1 變數 28

2.5.2 數據類型 32

2.6 條件語句 33

2.6.1 if語句 33

2.6.2 比較運算符 34

2.6.3 在if語句中進行多重布爾值檢查 35

2.6.4 else和else if語句 35

2.7 函式 36

2.7.1 創建函式 36

2.7.2 調用函式 37

2.8 對象 38

2.8.1 什麼是對象 38

2.8.2 創建和使用對象 38

2.9 數組 40

2.9.1 創建數組 40

2.9.2 訪問和修改數組 41

2.10 循環 41

2.11 定時器 43

2.11.1 設定一次性定時器 43

2.11.2 取消一次性定時器 43

2.11.3 設定重複定時器 43

2.11.4 取消重複定時器 44

2.12 DOM 44

2.12.1 HTML網頁示例 44

2.12.2 使用純JavaScript訪問DOM 45

2.12.3 使用jQuery訪問DOM 46

2.12.4 操作DOM 46

2.13 小結 47

第3章 Canvas基礎知識 48

3.1 認識canvas元素 48

3.2 2D渲染上下文 49

3.2.1 坐標系統 49

3.2.2 訪問2D渲染上下文 50

3.3 繪製基本圖形和線條 51

3.3.1 線條 53

3.3.2 圓形 54

3.4 樣式 58

3.5 繪製文本 62

3.6 擦除Canvas 65

3.7 使Canvas填滿瀏覽器視窗 69

3.8 小結 71

第4章 Canvas高級功能 72

4.1 保存和恢復繪圖狀態 72

4.1.1 畫布繪圖狀態是什麼 72

4.1.2 保存繪圖狀態 73

4.1.3 恢復繪圖狀態 73

4.1.4 保存和恢復多個繪圖狀態 75

4.2 變形 76

4.2.1 平移 76

4.2.2 縮放 78

4.2.3 旋轉 80

4.2.4 變換矩陣 82

4.3 合成 85

4.3.1 全局阿爾法值 86

4.3.2 合成操作 87

4.4 陰影 91

4.5 漸變 93

4.6 複雜路徑 96

4.7 將畫布導出為圖像 100

4.8 小結 102

第5章 處理圖像和視頻 103

5.1 載入圖像 103

5.2 調整和裁剪圖像 105

5.2.1 調整圖像大小 105

5.2.2 裁剪圖像 106

5.2.3 陰影 108

5.3 圖像變形 110

5.3.1 平移 110

5.3.2 旋轉 111

5.3.3 縮放與翻轉 111

5.4 訪問像素值 113

5.5 從零繪製圖像 117

5.5.1 隨機繪製像素 119

5.5.2 創建馬賽克效果 119

5.6 基本圖像效果 123

5.6.1 反轉顏色 123

5.6.2 灰度 124

5.6.3 像素化 125

5.7 視頻處理 127

5.7.1 創建HTML5video元素 127

5.7.2 使用HTML5video API 128

5.7.3 設定畫布 129

5.8 小結 133

第6章 製作動畫 134

6.1 畫布中的動畫 134

6.2 創建動畫循環 135

6.2.1 循環 135

6.2.2 更新、清除、繪製 137

6.3 記憶要繪製的形狀 138

6.3.1 錯誤的方法 138

6.3.2 正確的方法 139

6.3.3 隨機產生形狀 142

6.4 改變方向 143

6.5 圓周運動 144

6.5.1 三角函式 145

6.5.2 綜合運用 148

6.6 反彈 150

6.7 小結 154

第7章 實現高級動畫 155

7.1 物理常識 155

7.1.1 什麼是物理學 155

7.1.2 物理學對創建動畫有何作用 156

7.1.3 基本概念 156

7.1.4 牛頓運動定律 157

7.2 運用物理知識創建動畫 158

7.2.1 準備工作 158

7.2.2 速度 161

7.2.3 添加邊界 163

7.2.4 加速度 163

7.2.5 摩擦力 165

7.3 碰撞檢測 166

7.3.1 碰撞檢測 167

7.3.2 彈開物體 170

7.3.3 動量守恆 173

7.4 小結 175

第8章 太空保齡球遊戲 176

8.1 遊戲概述 176

8.2 核心功能 177

8.2.1 構建HTML代碼 177

8.2.2 美化界面 180

8.2.3 編寫JavaScript代碼 182

8.3 激活用戶界面 183

8.4 創建遊戲對象 185

8.4.1 創建平台 185

8.4.2 創建小行星 187

8.4.3 創建玩家使用的小行星 190

8.4.4 更新UI 191

8.5 讓對象運動起來 191

8.6 檢測用戶互動 195

8.6.1 建立事件監聽器 195

8.6.2 選中玩家使用的小行星 196

8.6.3 增加力度 197

8.6.4 讓玩家使用的小行星動起來 198

8.6.5 可視化用戶輸入 199

8.7 重置player 200

8.8 玩家獲勝 201

8.8.1 更新分數 201

8.8.2 從平台上刪除小行星 202

8.9 小結 205

第9章 躲避小行星遊戲 206

9.1 遊戲概述 206

9.2 核心功能 207

9.2.1 創建HTML 代碼 207

9.2.2 美化界面 209

9.2.3 編寫JavaScript代碼 211

9.3 創建遊戲對象 213

9.3.1 創建小行星 213

9.3.2 創建玩家使用的火箭 215

9.4 檢測鍵盤輸入 216

9.4.1 鍵值 216

9.4.2 鍵盤事件 216

9.5 讓對象運動起來 218

9.6 假造橫向捲軸效果 223

9.6.1 循環利用小行星 223

9.6.2 添加邊界 223

9.6.3 讓玩家保持連續移動 224

9.7 添加聲音 224

9.8 結束遊戲 226

9.8.1 計分系統 226

9.8.2 殺死玩家 228

9.9 增加遊戲難度 230

9.10 小結 231

第10章 未來的Canvas 232

10.1 Canvas與SVG 232

10.1.1 可訪問性 233

10.1.2 點陣圖與矢量圖 233

10.2 Canvas與Flash 234

10.2.1 JavaScript開發人員可以借鑑Flash 234

10.2.2 Canvas沒有像Flash那樣用戶友好的編輯器 235

10.3 Canvas與性能 236

10.4 Canvas遊戲和動畫庫 236

10.5 三維圖形 238

10.6 與外圍設備互動 239

10.7 用WebSocket技術構建多人遊戲 240

10.8 靈感 241

10.8.1 Sketch Out遊戲 241

10.8.2 Z-Type遊戲 242

10.8.3 Sinuous遊戲 242

10.9 小結和結束語 243

相關詞條

相關搜尋

熱門詞條

聯絡我們