內容簡介
《Android遊戲開發從入門到精通》以Android系統中遊戲的應用程式開發為主題,結合真實的案例詳細介紹了在Android系統中開發遊戲項目所需要的基本知識和具體流程。《Android遊戲開發從入門到精通》內容分為四篇,共16章,分別講解了Android系統概述、Android核心框架分析、Android遊戲開發基礎、繪製遊戲角色、使用OpenGL ES構建三維遊戲、為遊戲添加網路功能、為遊戲增加音頻特效、觸屏遊戲事件處理、為遊戲設定素材資源、Android感測器套用開發詳解、遊戲中的人工智慧算法、遊戲中的Box2D 物理引擎,並通過四個大型綜合實例,分別介紹了開發大型益智類遊戲、體育類遊戲、桌面類遊戲和棋牌類遊戲的基本流程。
《Android遊戲開發從入門到精通》內容詳實、實例豐富、案例真實,適用於從事Android程式開發的不同層次的讀者,既可作為初學者的學習用書,也可作為向Android程式開發領域發展的程式設計師參考用書。
圖書目錄
前言
第一篇 基礎知識篇
第1章 Android系統概述
1.1 智慧型手機系統介紹
1.1.1 何謂智慧型手機
1.1.2 看當前主流的智慧型手機系統
1.2 Android 5.0的特點
1.3 Android的巨大優勢
1.3.1 優勢一——系出名門
1.3.2 優勢二——強大的開發團隊
1.3.3 優勢三——誘人的獎勵機制
1.3.4 優勢四——開源
1.4 搭建Android套用開發環境
1.4.1 安裝Android SDK的系統要求
1.4.2 安裝JDK
1.4.3 獲取並安裝Eclipse和Android SDK
1.4.4 安裝ADT
1.4.5 設定Android SDK Home
1.4.6 驗證開發環境
1.4.7 創建Android虛擬設備(AVD)
1.4.8 啟動AVD模擬器
第2章 Android核心框架分析
2.1 Android安裝檔案介紹
2.1.1 Android SDK目錄結構
2.1.2 android.jar及內部結構
2.1.3 閱讀SDK幫助文檔
2.1.4 常用的SDK工具
2.2 剖析Android系統架構
2.2.1 Android體系結構介紹
2.2.2 Android套用工程檔案組成
2.3 簡述五大組件
2.3.1 用Activity表現界面
2.3.2 用Intent和IntentFilters實現切換
2.3.3 Service服務
2.3.4 用BroadcastIntentReceiver傳送廣播
2.3.5 用ContentProvider存儲數據
2.4 進程和執行緒
2.4.1 先看進程
2.4.2 再看執行緒
2.4.3 應用程式的生命周期
2.5 第一個Android程式
第二篇 核心技術篇
第3章 Android遊戲開發基礎
3.1 開發Android遊戲的基本流程
3.2 Android中的數據存儲方式
3.2.1 SharedPreferences存儲
3.2.2 檔案存儲
3.2.3 SQLite存儲
3.2.4 ContentProvider存儲
3.2.5 網路存儲
3.3 訪問操作SD卡(手機中的存儲卡)
3.3.1 解決思路
3.3.2 具體實現
第4章 繪製遊戲角色
4.1 繪圖類Graphics簡介
4.2 使用類Color設定文本顏色
4.2.1 類Color基礎
4.2.2 使用類Color更改文字的顏色
4.3 使用類Paint繪製圖像
4.3.1 類Paint基礎
4.3.2 使用類Color和類Paint實現繪圖處理
4.4 使用畫布類Canvas
4.4.1 類Canvas基礎
4.4.2 使用類Canvas繪製有填充顏色的圖形
4.5 使用矩形類Rect
4.6 類NinePatch基礎
4.7 使用圖形變換類Matrix
4.7.1 類Matrix基礎
4.7.2 使用類Matrix實現圖片縮放功能
4.8 使用點陣圖操作類Bitmap
4.8.1 Bitmap類的功能
4.8.2 使用類Bitmap模擬水紋效果
4.8.3 使用類Bitmap旋轉圖片
4.9 使用I/O類BitmapFactory
4.9.1 類BitmapFactory基礎
4.9.2 使用類BitmapFactory獲取圖片的寬和高
4.10 使用字型對象類Typeface
4.11 使用渲染類Shader
4.11.1 類Shader基礎
4.11.2 使用類Shader渲染不同的圖像
第5章 使用OpenGL ES構建三維遊戲
5.1 OpenGL ES介紹
5.1.1 OpenGL ES 3.1
5.1.2 Android全面支持OpenGL ES 3.1
5.2 OpenGL ES的基本套用
5.2.1 使用點線法繪製三角形
5.2.2 使用索引法繪製三角形
5.3 使用OpenGL ES實現投影效果
5.3.1 正交投影
5.3.2 透視投影
5.3.3 正交投影和透視投影的區別
5.3.4 實現投影效果實例
5.4 使用OpenGL ES實現光照效果
5.4.1 什麼是光照
5.4.2 實現“開啟/關閉”光照功能
5.5 為遊戲增加紋理特效
5.5.1 紋理映射的作用
5.5.2 實現三角形紋理貼圖效果
5.6 創建立體圖形角色
5.7 三維遊戲角色坐標定位
5.7.1 什麼是坐標變換
5.7.2 實現縮放變換
5.8 為遊戲增加3Ds Max特效
5.8.1 實現攝像機和霧特效效果
5.8.2 實現粒子系統效果
第6章 為遊戲添加網路功能
6.1 Socket技術介紹
6.1.1 Socket基礎
6.1.2 ServerSocket基礎
6.2 使用HTTP超文本傳輸協定
6.2.1 HTTP基礎
6.2.2 Android中的HTTP
6.2.3 實戰演練——傳遞HTTP參數
6.3 下載、上傳數據
6.3.1 下載網路中的圖片數據
6.3.2 下載網路中的JSON數據
6.3.3 使用GET方式上傳數據
第7章 為遊戲增加音頻特效
7.1 使用類AudioManager打造遊戲聲效
7.1.1 類AudioManager基礎
7.1.2 設定簡訊提示鈴聲
7.2 為遊戲設定背景音樂
7.2.1 使用AudioTrack播放音頻特效
7.2.2 使用MediaPlayer播放音頻特效
7.2.3 使用網路中的MP3作為遊戲音效
7.2.4 使用SoundPool播放音頻特效
7.3 實現振動特效
7.3.1 類Vibrator的基礎
7.3.2 將鈴聲設定為遊戲音效
第8章 觸屏遊戲事件處理
8.1 基於監聽的事件處理
8.1.1 監聽處理模型中的三種對象
8.1.2 Android系統中的監聽事件
8.1.3 實現事件監聽器的方法
8.2 基於回調的事件處理
8.2.1 Android事件監聽器的回調方法
8.2.2 基於回調的事件傳播
8.2.3 重寫onTouchEvent方法回響觸控螢幕事件
8.3 回響的系統設定的事件
8.3.1 Configuration類詳解
8.3.2 重寫onConfigurationChanged回響系統設定更改
8.4 Handler訊息傳遞機制
第9章 為遊戲設定素材資源
9.1 Android的資源類型
9.2 如何使用資源
9.2.1 在Java代碼中使用資源清單項
9.2.2 在Java代碼中訪問實際資源
9.2.3 在XML代碼中使用資源
9.3 “/res/values”目錄
9.3.1 定義顏色值
9.3.2 字元串資源
9.3.3 顏色資源檔案
9.3.4 尺寸資源檔案
9.3.5 數組資源
9.3.6 使用字元串、顏色和尺寸資源
9.3.7 使用數組資源
9.4 Drawable(圖片)資源
9.4.1 使用StateListDrawable資源
9.4.2 使用LayerDrawable資源
9.4.3 使用ShapeDrawable資源
9.4.4 使用ClipDrawable資源
9.4.5 使用AnimationDrawable資源
9.5 使用屬性動畫(Property Animation)資源
9.6 使用原始的XML資源
9.7 樣式資源和主題資源
9.7.1 使用樣式資源
9.7.2 使用主題資源檔案
9.8 使用屬性資源
9.9 使用聲音資源
第三篇 技術提高篇
第10章 Android感測器套用開發詳解
10.1 Android感測器系統概述
10.2 Android感測器套用開發基礎
10.2.1 查看包含的感測器
10.2.2 模擬器測試工具——SensorSimulator
10.2.3 實戰演練——檢測當前設備支持的感測器
10.3 使用光線感測器
10.3.1 光線感測器介紹
10.3.2 使用光線感測器的方法
10.4 使用磁場感測器
10.4.1 什麼是磁場感測器
10.4.2 Android系統中的磁場感測器
10.5 使用加速度感測器
10.5.1 加速度感測器的分類
10.5.2 Android系統中的加速度感測器
10.6 使用方向感測器
10.6.1 方向感測器基礎
10.6.2 Android中的方向感測器
10.7 使用陀螺儀感測器
10.7.1 陀螺儀感測器基礎
10.7.2 Android中的陀螺儀感測器
10.8 使用旋轉向量感測器
10.9 使用距離感測器
10.9.1 距離感測器介紹
10.9.2 Android系統中的距離感測器
10.10 使用氣壓感測器
10.10.1 氣壓感測器基礎
10.10.2 氣壓感測器在智慧型手機中的套用
10.11 使用溫度感測器
10.11.1 溫度感測器介紹
10.11.2 Android系統中的溫度感測器
10.12 使用濕度感測器
第11章 遊戲中的人工智慧算法
11.1 人工智慧基礎
11.1.1 人工智慧概述
11.1.2 兩種實現人工智慧的方法
11.1.3 人工智慧在遊戲中的套用
11.2 圖論在人工智慧中的套用
11.2.1 深度優先搜尋(DFS)
11.2.2 廣度優先搜尋(BFS)
11.2.3 戴克斯特拉算法(Dijkstra’s Algorithm)
11.2.4 A*算法
11.3 人工智慧圖搜尋算法在Android遊戲中的用法
11.3.1 搭建路徑搜尋框架
11.3.2 實現深度優先算法
11.3.3 實現廣度優先算法
11.3.4 實現Dijkstra算法
11.3.5 實現廣度優先A*算法
11.3.6 實現Dijkstra A*算法
第12章 遊戲中的Box2D 物理引擎
12.1 Box2D引擎基礎
12.1.1 核心概念
12.1.2 兩種模擬物理世界的算法
12.2 將Box2D類庫導入Android項目中
12.3 Box2D引擎的坐標系
12.4 Box2D引擎實戰
12.4.1 創建Box2D物理世界
12.4.2 在物理世界中添加矩形
12.4.3 在物理世界中添加自定義多邊形
12.4.4 在物理世界中添加圓形
12.4.5 遍歷Body
12.4.6 對Body施加力
12.4.7 對Body碰撞監聽
12.4.8 創建關節
第四篇 綜合實戰篇
第13章 體育競技類遊戲——瘋狂足球
13.1 蓬勃發展的手機遊戲
13.2 足球遊戲介紹
13.2.1 手機足球遊戲
13.2.2 策劃遊戲
13.2.3 準備工作
13.3 項目架構
13.3.1 總體架構
13.3.2 規劃類
13.4 具體編碼
13.4.1 Activity類開發
13.4.2 歡迎界面
13.4.3 載入節目
13.4.4 運動控制
13.4.5 獎品模組
第14章 益智類遊戲——魔塔遊戲
14.1 魔塔簡介
14.1.1 遊戲簡介
14.1.2 發展版本
14.2 設計遊戲框架
14.2.1 設計界面視圖
14.2.2 螢幕處理
14.2.3 更新執行緒
14.2.4 遊戲界面顯示
14.3 繪製處理
14.3.1 繪製地圖
14.3.2 繪製遊戲主角
14.3.3 繪製對話界面
14.3.4 戰鬥界面
14.3.5 圖層管理器
14.4 實現遊戲音效
第15章 桌面類小遊戲——五子棋和掃雷
15.1 開發一個五子棋遊戲
15.1.1 實例說明
15.1.2 具體實現
15.2 開發一個掃雷遊戲
15.2.1 實例說明
15.2.2 具體實現
第16章 棋牌類遊戲——鬥地主
16.1 鬥地主簡介
16.2 準備素材檔案
16.3 實現遊戲框架
16.3.1 系統主界面視圖
16.3.2 設計選單視圖界面
16.3.3 遊戲視圖界面
16.4 實現遊戲角色
16.4.1 實現撲克角色
16.4.2 實現計分角色
16.4.3 實現玩家角色
16.4.4 實現遊戲桌位角色
16.5 實現牌面分析