內容簡介
Android是一種基於Linux的自由及開放源碼的作業系統,自從2007年被Google公司發布以來,載有Android平台的智慧型設備在全球消費者市場攻城略地,如今其市場占有率已經全面超越其他移動平台,穩居世界第 一。
《Android遊戲編程入門經典》分為3部分,基於最新的Android 4編寫,循序漸進地介紹了Android移動遊戲開發所需要的基本知識,其中包括安裝和配置開發工具、Android SDK;學習與Android相關的知識,以及使用SDK支持的Android設備,比如圖形設備、觸控螢幕、音頻系統和感測器;使用輔助類來創建Android平台的基本遊戲引擎,這些輔助類涵蓋了編寫大多數視頻遊戲所需要的常見遊戲功能。此外,《Android遊戲編程入門經典》還給出了每個示例的代碼供讀者參考。
《Android遊戲編程入門經典》適合有一定
Java基礎和編程經驗的讀者閱讀,也適合有志於從事Android平台遊戲開發的讀者閱讀。
圖書目錄
第 1部分 簡介
第 1章 Android 4簡介 3
1.1 Android 4簡介 3
1.2 Android SDK簡介 6
1.4 Android開發系統要求 7
1.5 Android平台的歷史 7
1.6 Android硬體規格 8
1.7 小結 10
1.8 問與答 10
1.9 測驗 10
1.9.1 問題 10
1.9.2 答案 10
1.9.3 作業 10
第 2章 安裝開發工具 11
2.1 安裝JDK 11
2.2 下載NetBeans軟體包 12
2.3 安裝軟體包 13
2.4 安裝Android SDK 14
2.5 下載SDK 14
2.6 安裝SDK 15
2.7 運行Android SDK Manager 16
2.8 安裝Eclipse的ADT外掛程式 18
2.9 小結 19
2.10 問與答 19
2.11 測驗 20
2.11.1 問題 20
2.11.2 答案 20
2.11.3 作業 20
第3章 使用Android SDK配置NetBeans和Eclipse 21
3.1 創建Android模擬器設備 21
3.2 創建新模擬器設備 22
3.3 運行模擬器 23
3.4 將Android SDK添加到NetBeans中 24
3.5 為Eclipse添加Android SDK支持 27
3.5.1 在Eclipse中創建新Android項目 27
3.5.2 選擇Android構建目標 29
3.6 小結 30
3.7 問與答 30
3.8 測驗 30
3.8.1 問題 30
3.8.2 答案 31
3.8.3 作業 31
第4章 創建第 一個Android程式 32
4.1 創建新的Android項目 32
4.1.1 配置NBAndroid外掛程式 34
4.1.2 完成新項目設定 35
4.2 構建新項目 35
4.2.1 打開輸出視窗 36
4.2.2 在模擬器中運行程式 37
4.3 編輯Hello,Android!程式 41
4.4 對比模擬器和Android設備 42
4.4.1 AVD限制 43
4.4.2 安裝Android Debug Bridge Device Driver 44
4.4.3 在Android設備上運行代碼 46
4.5 小結 48
4.6 問與答 49
4.7 測驗 49
4.7.1 問題 49
4.7.2 答案 49
4.7.3 作業 49
第 2部分 Android硬體
第5章 開始使用圖形 53
5.1 了解Activity類 53
5.1.1 程式生命周期 54
5.1.2 可視生命周期 55
5.1.3 前台生命周期 55
5.2 測試Activity狀態 55
5.2.1 創建新項目 55
5.2.2 原始碼 58
5.3 世界上最簡單的Android圖形演示 59
5.3.1 取消選中第 一個圖形演示 61
5.3.2 畫布和視圖簡介 62
5.4 小結 63
5.5 問與答 63
5.6 測驗 63
5.6.1 問題 63
5.6.2 答案 63
5.6.3 作業 63
第6章 繪製基本形狀和文本 64
6.1 繪製基本矢量形狀 64
6.1.1 繪製圓形 64
6.1.2 繪製線條 64
6.1.3 繪製方框 65
6.1.4 繪製圓角矩形 65
6.1.5 繪製三角形 66
6.1.6 更改樣式:描邊和填充 66
6.1.7 基本圖形演示 66
6.2 繪製文本 69
6.3 編寫Javadoc的代碼 72
6.4 Android螢幕密度和解析度 73
6.5 小結 77
6.6 問與答 77
6.7 測驗 77
6.7.1 問題 77
6.7.2 答案 77
6.7.3 作業 77
第7章 載入和繪製圖像 78
7.1 雙緩衝繪圖 78
7.1.1 創建記憶體點陣圖 78
7.1.2 創建繪圖畫布 79
7.1.3 使用後台緩衝 79
7.2 載入點陣圖檔案 81
7.2.1 添加點陣圖資產 82
7.2.2 使用AssetManager 83
7.2.3 使用InputStream 84
7.2.4 使用BitmapFactory 84
7.2.5 關閉輸入流 84
7.2.6 完整的點陣圖載入代碼 84
7.3 繪製點陣圖 85
7.3.1 為透明度創建aplha通道 86
7.3.2 完成的示例 88
7.4 小結 89
7.5 問與答 89
7.6 測驗 90
7.6.1 問題 90
7.6.2 答案 90
7.6.3 作業 90
第8章 使用循環賦予遊戲活力 91
8.1 創建執行緒遊戲循環 91
8.1.1 查看非執行緒代碼 91
8.1.2 編寫執行緒代碼 92
8.2 不使用onDraw()進行繪製 93
8.3 Runnable Animation Demo 95
8.3.1 為行走的角色製作動畫 95
8.3.2 項目原始碼 96
8.4 小結 100
8.5 問與答 100
8.6 測驗 100
8.6.1 問題 100
8.6.2 答案 100
8.6.3 作業 101
第9章 多點觸摸用戶輸入 102
9.1 單點觸摸輸入 102
9.1.1 監聽觸摸事件 102
9.1.2 單點觸摸輸入演示 103
9.2 多點觸摸輸入 106
9.2.1 簡單示例 107
9.2.2 封裝多點觸摸輸入 108
9.2.3 多點觸摸演示 108
9.3 小結 111
9.4 問與答 111
9.5 測驗 112
9.5.1 問題 112
9.5.2 答案 112
9.5.3 作業 112
10.1 Android感測器 113
10.1.1 訪問感測器 114
10.1.2 禁用螢幕方向改變 115
10.1.3 加速度計初始化 115
10.1.4 加速度計運動 116
10.1.5 獲取可用感測器列表 117
10.1.6 完整示例 118
10.2 小結 121
10.3 問與答 121
10.4 測驗 122
10.4.1 問題 122
10.4.2 答案 122
10.4.3 作業 122
11.1 訪問線性加速度感測器 123
11.1.1 初始化線性加速度感測器 124
11.1.2 關於暫停和恢復 124
11.1.3 讀取感測器 124
11.1.4 線性加速度演示 125
11.3 小結 130
11.4 問與答 130
11.5 測驗 130
11.5.1 問題 130
11.5.2 答案 131
11.5.3 作業 131
12.1 使用重力感測器 132
12.1.1 初始化重力感測器 132
12.1.3 測試重力感測器 134
12.2.1 初始化壓力感測器 138
12.2.2 讀取壓力感測器 139
12.3 小結 139
12.4 問與答 139
12.5 測驗 139
12.5.1 問題 139
12.5.2 答案 140
12.5.3 作業 140
13.1 封裝Android感測器 141
13.1.1 BaseSensor 142
13.1.2 加速度計 142
13.1.3 線性加速度 143
13.1.4 近距離感測器 143
13.1.5 重力感測器 143
13.1.6 壓力感測器 144
13.1.8 指南針 144
13.1.9 光檢測器 145
13.2.1 包和導入 146
13.2.2 主要類 146
13.2.3 DrawView 147
13.2.4 暫停和恢復 147
13.2.5 執行緒進程 147
13.2.6 創建面板 148
13.2.7 更新感測器 149
13.2.8 繪製感測器面板 149
13.2.9 輔助方法 150
13.2.10 SensorPanel類 150
13.2.11 輸出文本行 151
13.2.12 Sensors類 152
13.2.13 捕捉感測器事件 153
13.2.14 未使用的準確性事件 154
13.2.15 暫停和恢復應用程式 154
13.2.16 BaseSensor類 156
13.2.17 各種感測器類 157
13.3 小結 158
13.4 問與答 158
13.5 測驗 158
13.5.1 問題 158
13.5.2 答案 159
13.5.3 作業 159
第 14章 使用音頻系統 160
14.1 使用MediaPlayer播放音頻 160
14.1.1 受支持的音頻格式 160
14.1.2 初始化MediaPlayer 161
14.1.3 將音頻檔案添加到項目中 161
14.1.4 播放音頻剪輯 163
14.2 使用SoundPool播放音頻 163
14.2.1 初始化SoundPool 164
14.2.2 載入音頻資源 164
14.2.3 播放音頻資源 164
14.2.4 Audio Demo程式 165
14.3 小結 166
14.4 問與答 166
14.5 測驗 166
14.5.1 問題 166
14.5.2 答案 167
14.5.3 作業 167
第3部分 Android Gameplay
第 15章 構建Android遊戲引擎 171
15.1 設計Android遊戲引擎 171
15.1.1 設計目標 172
15.1.2 引擎組件 172
15.2 創建Android庫項目 174
15.3 編寫核心引擎類 178
15.3.1 Engine類 178
15.3.2 Timer類 185
15.3.3 TextPrinter類 186
15.3.4 Texture類 187
15.4 引擎測試演示項目 188
15.4.1 引擎演示原始碼 190
15.4.2 記錄引擎演示的日誌 192
15.5 小結 193
15.6 問與答 193
15.7 測驗 193
15.7.1 問題 193
15.7.2 答案 193
15.7.3 作業 193
第 16章 創建Sprite/Actor類 194
16.1 靜態子畫面為道具 194
16.2 動態子畫面為角色 195
16.3 封裝基本子畫面功能 196
16.3.1 擬定計畫和設計 197
16.3.2 新Sprite類的簡介 197
16.3.3 回顧Texture 198
16.4 測試Sprite類 199
16.4.1 子畫面演示原始碼 200
16.4.2 測試Sprite類 202
16.5 小結 203
16.6 問與答 203
16.7 測驗 203
16.7.1 問題 203
16.7.2 答案 203
16.7.3 作業 203
第 17章 使用子畫面表單/地圖集製作幀動畫 204
17.1 使用一張圖像製作動畫 204
17.1.1 排列動畫幀 204
17.1.2 從連續圖像繪製幀 205
17.2 使用子畫面表單(紋理地圖集)製作動畫 206
17.3 動畫演示 207
17.4 小結 211
17.5 問與答 211
17.6 測驗 211
17.6.1 問題 211
17.6.2 答案 212
17.6.3 作業 212
第 18章 高級多動畫技術 213
18.1 創建動畫系統 213
18.1.1 編寫動畫基類 213
18.1.2 Sprite類改進 214
18.1.3 alpha動畫 218
18.1.4 幀動畫 219
18.1.5 旋轉動畫 220
18.1.6 跳動動畫 221
18.1.7 圓周運動動畫 222
18.2 動畫系統演示 222
18.3 小結 226
18.4 問與答 226
18.5 測驗 226
18.5.1 問題 226
18.5.2 答案 227
18.5.3 作業 227
第 19章 使用矩陣變換處理子畫面 228
19.1 矩陣平移 228
19.1.1 坐標系 229
19.1.2 矩陣平移選項 231
19.2 矩陣旋轉 232
19.3 矩陣縮放 233
19.4 矩陣變換演示 233
19.4.1 結合使用三個矩陣 234
19.4.2 將幀渲染到劃痕點陣圖 234
19.4.3 獲得螢幕解析度(Precanvas) 235
19.4.4 “扭曲”行為 236
19.4.5 更新的Sprite類 237
19.4.6 子畫面變換演示 241
19.5 小結 244
19.6 問與答 244
19.7 測驗 244
19.7.1 問題 244
19.7.2 答案 244
19.7.3 作業 245
第 20章 實體分組 246
20.1 實體分組 246
20.1.1 引擎改進 246
20.1.2 跳動動畫更新 249
20.1.3 扭曲行為更新 250
20.1.4 圍欄行為 251
20.1.5 實體分組演示 251
20.2 小結 254
20.3 問與答 255
20.4 測驗 255
20.4.1 問題 255
20.4.2 答案 255
20.4.3 作業 255
第 21章 碰撞檢測 256
21.1 碰撞檢測技術 256
21.1.1 邊界矩形(框碰撞) 256
21.1.2 邊界圓形(徑向碰撞) 257
21.2 演示碰撞 259
21.2.1 引擎改進 259
21.2.2 子畫面改進 262
21.2.3 碰撞演示原始碼 264
21.3 小結 267
21.4 問與答 267
21.5 測驗 267
21.5.1 問題 267
21.5.2 答案 268
21.5.3 作業 268
第 22章 使用線性速度實現實際運動 269
22.1 從一個方向計算速度 269
22.2 在移動方向上“定位”子畫面 271
22.3 改進引擎 273
22.3.1 Sprite類的變化 273
22.3.2 改進動畫類 275
22.3.3 對速度行為進行分類 276
22.3.4 更新圓周運動類 277
22.3.5 更新圍欄行為 278
22.3.6 更新扭曲行為 279
22.3.7 引擎改進 280
22.4 小結 284
22.5 問與答 284
22.6 測驗 284
22.6.1 問題 284
22.6.2 答案 285
22.6.3 作業 285
第 23章 滾動背景 286
23.1 背景滾動概述 286
23.1.1 翻轉滾動矩形 286
23.1.2 創建滾動紋理 287
23.2 射擊遊戲 288
23.3 小結 294
23.4 問與答 294
23.5 測驗 295
23.5.1 問題 295
23.5.2 答案 295
23.5.3 作業 295
第 24章 球類遊戲 296
24.1 創建球類遊戲 296
24.1.1 自動移動球 297
24.1.2 自動限制球拍 298
24.1.3 球類遊戲原始碼 299
24.2 小結 303
24.3 問與答 303
24.4 測驗 303
24.4.1 問題 303
24.4.2 答案 303
24.4.3 作業 304