編輯推薦
涵蓋Android遊戲開發的核心技術,如前颱渲染、交互式通信、數據存儲和傳感器、網絡編程、遊戲背後的數學與物理、遊戲地圖開發、遊戲開發小秘技、JBox2D物理引擎、3D應用開發等。
7大Android遊戲開發實戰綜閤案例,包括現在流行的多種遊戲類型,如滾屏動作類遊戲——坦剋大戰、網絡遊戲開發——風火三國網絡對戰遊戲、物理傳感器遊戲——哇!重力球、塔防遊戲——炫彩塔防、策略遊戲——大富翁、休閑類遊戲——切切樂、休閑類遊戲——3D冰球,每種遊戲類型的案例開發都有其獨特的地方。
內容簡介
本書是講解Android遊戲案例開發的專業書籍,全書分兩部分共18章,前半部分為Android遊戲開發核心技術,主要包括Android遊戲開發的前颱渲染、交互式通信、數據存儲和傳感器、網絡編程、遊戲背後的數學與物理、遊戲地圖開發、遊戲開發小秘技、JBox2D物理引擎、3D應用開發基礎等;後半部分為Android遊戲開發實戰綜閤案例,包括現在流行的多種遊戲類型,如滾屏動作類遊戲——坦剋大戰、網絡遊戲開發——風火三國網絡對戰遊戲、物理傳感器遊戲——哇!重力球、塔防遊戲——炫彩塔防、策略遊戲——大富翁、休閑類遊戲——切切樂、休閑類遊戲——3D冰球。
本書適閤Android初學者、有Java基礎的讀者、在職開發人員、遊戲開發愛好者、程序員閱讀參考,也可作為大中專院校相關專業的學習用書和培訓學校的教材。
作者簡介
吳亞峰,畢業於北京郵電大學,後留學澳大利亞取得碩士學位。1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。主要的研究方嚮為OpenGL ES、手機遊戲、Java EE以及搜索引擎。同時為手機遊戲、Java EE獨立軟件開發工程師,並兼任百納科技Java培訓中心首席培訓師。近十年來為數十傢企業培養瞭上韆名高級軟件開發人員,曾編寫過《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》、《Cocos2d-X 3.0遊戲開發實戰詳解》、《Unity 4 3D開發實戰詳解》等多本暢銷技術書籍。2008年初開始關注Android平颱下的3D應用開發,並開發齣一係列的Android應用程序與3D遊戲。
內頁插圖
目錄
目錄
第1章 Android平颱簡介 1
1.1 Android的來龍去脈 1
1.2 掀起Android的蓋頭來 1
1.2.1 選擇Android的理由 1
1.2.2 Android的應用程序框架 2
1.3 Android開發環境的搭建 4
1.3.1 Android SDK的下載 4
1.3.2 Android SDK的配置 5
1.3.3 創建並啓動模擬器 7
1.3.4 第一個Android程序 9
1.3.5 Android程序的監控與調試 13
1.4 已有Android項目的導入與運行 15
1.4.1 項目的導入 15
1.4.2 項目的運行 17
1.5 小結 18
第2章 Android遊戲開發中的前颱渲染 19
2.1 創建Android用戶界麵 19
2.1.1 布局管理 19
2.1.2 常用控件及其事件處理 24
2.2 圖形與動畫在Android中的實現 26
2.2.1 簡單圖形的繪製 26
2.2.2 貼圖的藝術 27
2.2.3 剪裁功能 29
2.2.4 自定義動畫的播放 32
2.3 Android平颱下的多媒體開發 34
2.3.1 音頻的播放 34
2.3.2 視頻的播放 37
2.3.3 Camera圖像采集 39
2.4 小結 41
第3章 Android遊戲開發中的
交互式通信 42
3.1 Android應用程序的基本組件 42
3.1.1 Activity組件 42
3.1.2 Service組件 44
3.1.3 Broadcast Receiver組件 44
3.1.4 Content Provider組件 46
3.1.5 AndroidManifest.xml
文件簡介 46
3.2 應用程序的內部通信 49
3.2.1 消息的處理者——Handler
類簡介 49
3.2.2 使用Handler進行內部通信 50
3.3 應用程序組件之間的通信 52
3.3.1 Intent類簡介 52
3.3.2 應用程序組件——IntentFilter
類簡介 53
3.3.3 示例1:與Android係統
組件通信 54
3.3.4 示例2:應用程序組件間通信
示例Activity部分的開發 55
3.3.5 示例3:應用程序組件間通信
示例Service部分的開發 57
3.4 小結 59
第4章 Android遊戲開發中的數據存儲
和傳感器 60
4.1 在Android平颱上實現數據存儲 60
4.1.1 私有文件夾文件的寫入
與讀取 60
4.1.2 讀取Resources和Assets
中的文件 63
4.1.3 輕量級數據庫SQLite簡介 65
4.1.4 SQLite的使用示例 67
4.1.5 數據共享者——Content
Provider的使用 70
4.1.6 簡單的數據存儲——
Preferences的使用 74
4.2 Android平颱下傳感器應用
的開發 75
4.2.1 基本開發步驟 76
4.2.2 光傳感器 78
4.2.3 溫度傳感器 80
4.2.4 接近傳感器 81
4.2.5 加速度傳感器 83
4.2.6 磁場傳感器 85
4.2.7 姿態傳感器 87
4.2.8 陀螺儀傳感器 90
4.2.9 加速度傳感器綜閤案例 91
4.2.10 傳感器的坐標軸問題 94
4.3 小結 97
第5章 Android遊戲開發中的網絡編程 98
5.1 基於Socket套接字的網絡編程 98
5.2 基於HTTP的網絡編程 101
5.2.1 通過URL獲取網絡資源 101
5.2.2 在Android中解析XML 103
5.3 Android平颱下的百度地圖 103
5.3.1 準備工作 104
5.3.2 簡單的案例 107
5.4 藍牙通信 111
5.4.1 基礎知識 111
5.4.2 簡單的案例 111
5.5 簡單的多用戶並發網絡遊戲
編程架構 122
5.5.1 基本知識 122
5.5.2 雙人聯網操控飛機案例 124
5.6 小結 134
第6章 不一樣的遊戲,一樣的精彩應用 135
6.1 射擊類遊戲 135
6.1.1 遊戲玩法 135
6.1.2 視覺效果 135
6.1.3 遊戲內容設計 136
6.2 競速類遊戲 136
6.2.1 遊戲玩法 137
6.2.2 視覺效果 137
6.2.3 遊戲內容設計 137
6.3 益智類遊戲 138
6.3.1 遊戲玩法 138
6.3.2 視覺效果 138
6.3.3 遊戲內容設計 139
6.4 角色扮演遊戲 139
6.4.1 遊戲玩法 139
6.4.2 視覺效果 140
6.4.3 遊戲內容設計 140
6.5 闖關動作類遊戲 141
6.5.1 遊戲玩法 141
6.5.2 視覺效果 142
6.5.3 遊戲內容設計 142
6.6 冒險遊戲 142
6.6.1 遊戲玩法 142
6.6.2 視覺效果 143
6.6.3 遊戲內容設計 144
6.7 策略遊戲 144
6.7.1 遊戲玩法 144
6.7.2 視覺效果 145
6.7.3 遊戲內容設計 145
6.8 養成類遊戲 146
6.8.1 遊戲玩法 146
6.8.2 視覺效果 146
6.8.3 遊戲內容設計 146
6.9 經營類遊戲 147
6.9.1 遊戲玩法 147
6.9.2 視覺效果 148
6.9.3 遊戲內容設計 148
6.10 體育類遊戲 148
6.10.1 遊戲玩法 148
6.10.2 視覺效果 149
6.10.3 遊戲內容設計 149
6.11 小結 149
第7章 遊戲背後的數學與物理 151
7.1 編程中經常用到的數理知識 151
7.1.1 數學方麵 151
7.1.2 物理方麵 153
7.2 碰撞檢測技術 153
7.2.1 碰撞檢測技術基礎 154
7.2.2 遊戲中實體對象之間的
碰撞檢測 155
7.2.3 遊戲實體對象與環境之間
的碰撞檢測 157
7.2.4 穿透效應問題 158
7.3 必知必會的計算幾何 159
7.3.1 GeoLib庫中常用基礎類
的介紹 159
7.3.2 無孔多邊形的相關知識 167
7.3.3 有孔多邊形的相關知識 170
7.3.4 有孔多邊形案例 173
7.3.5 顯示凸殼案例 177
7.3.6 多邊形切分案例 180
7.3.7 顯示包圍框以及多邊形的
矩形組閤案例 184
7.3.8 鏇轉與凸子區域案例 186
7.3.9 平滑與計算最短距離案例 188
7.3.10多邊形縮放與不重疊案例 189
7.3.11 求多邊形對稱案例 191
7.3.12 多邊形集閤運算案例 192
7.4 小結 194
第8章 遊戲地圖必知必會 195
8.1 兩種不同單元形狀的地圖 195
8.1.1 正方形單元地圖 195
8.1.2 正方形單元地圖案例 197
8.1.3 正六邊形單元地圖 198
8.1.4 正六邊形單元地圖案例 200
8.1.5 正方形單元和正六邊形單元
地圖的比較 202
8.2 正六邊形單元地圖的路徑搜索 202
8.2.1 路徑搜索示例基本框架
的搭建 203
8.2.2 深度優先路徑搜索DFS 208
8.2.3 廣度優先路徑搜索BFS 209
8.2.4 路徑搜索算法——
Dijkstra 212
8.2.5 用A*算法優化算法 215
8.3 正六邊形單元地圖的網格定位 217
8.3.1 基本知識 217
8.3.2 簡單的案例 217
8.4 地圖編輯器與關卡設計 219
8.4.1 關卡地圖的重要性 219
8.4.2 圖片分割界麵的實現 221
8.4.3 地圖設計界麵的實現 224
8.5 多分辨率屏幕的自適應 230
8.5.1 非等比例縮放 230
8.5.2 非等比例縮放案例 231
8.5.3 等比例縮放並剪裁 234
8.5.4 等比例縮放並剪裁案例 235
8.5.5 等比例縮放並留白 236
8.5.6 等比例縮放並留白案例 237
8.6 小結 238
第9章 遊戲開發小秘技 239
9.1 有限狀態機 239
9.1.1 何為有限狀態機 239
9.1.2 有限狀態機的簡單實現 240
9.1.3 有限狀態機的OO實現 244
9.2 遊戲中的模糊邏輯 246
9.2.1 模糊的纔是真實的 246
9.2.2 如何在Android中將遊戲
模糊化 247
9.3 遊戲的基本優化技巧 249
9.3.1 代碼上的小藝術 249
9.3.2 Android中的查找錶技術 250
9.3.3 遊戲的感覺和性能問題 252
9.4 多點觸控技術的使用 253
9.4.1 基本知識 253
9.4.2一個簡單
前言/序言
Android 遊戲開發大全(第3版) 簡介 《Android 遊戲開發大全(第3版)》是一部為 aspiring 和 experienced Android 遊戲開發者量身打造的全麵指南。本書深入探討瞭 Android 遊戲開發的各個方麵,從基礎概念到高級技術,旨在幫助讀者掌握創建引人入勝、高性能 Android 遊戲所需的知識和技能。本書以其詳盡的講解、豐富的示例代碼和實用的開發技巧,成為 Android 遊戲開發領域的權威參考。 核心內容概覽 本書共分為多個部分,層層遞進,係統地構建讀者的 Android 遊戲開發知識體係。 第一部分:Android 遊戲開發基礎 Android 開發環境搭建與項目管理: 詳細介紹 Android Studio 的安裝與配置,包括 SDK、AVD 的設置,以及 Android 項目的創建、結構和核心組件(Activity、Service、Broadcast Receiver、Content Provider)的解析。重點講解如何為遊戲項目進行閤理的工程化管理。 Android UI 與圖形繪製基礎: 深入理解 Android 的 UI 布局係統,包括 XML 布局、ConstraintLayout、LinearLayout 等,並介紹 Canvas API,講解如何在屏幕上進行基本的 2D 圖形繪製,如繪製綫條、矩形、圓形、文本等。 遊戲循環與基本渲染: 講解遊戲開發中的核心概念——遊戲循環(Game Loop),包括幀同步、狀態管理等。初步介紹如何在 Android 平颱上實現基本的幀渲染,為後續的圖形渲染打下基礎。 事件處理與用戶輸入: 詳細講解 Android 的事件分發機製,包括觸摸事件(MotionEvent)、按鍵事件(KeyEvent)等,以及如何處理用戶輸入,為遊戲交互提供支持。 資源管理與多媒體集成: 學習如何有效地管理遊戲資源,如圖片、音頻、字符串等。掌握音頻播放(MediaPlayer, SoundPool)和視頻播放(VideoView)等功能,為遊戲增加視聽元素。 第二部分:2D 遊戲開發核心技術 SurfaceView 與遊戲屏幕繪製: 深入講解 SurfaceView 的特性,以及如何利用它來實現高效的離屏渲染,這是構建流暢 2D 遊戲畫麵的關鍵。詳細介紹 SurfaceHolder 的使用,以及在 SurfaceView 的 Canvas 上進行遊戲畫麵的繪製、更新和刷新。 精靈(Sprite)與動畫: 講解精靈的概念,以及如何創建和管理遊戲中的角色、道具等視覺元素。深入介紹各種動畫技術,包括幀動畫、屬性動畫(Object Animator),以及如何實現平滑、生動的角色移動和狀態變化。 碰撞檢測: 講解不同類型的碰撞檢測算法,如 AABB(軸對齊包圍盒)、圓形碰撞等,並提供實際的代碼實現,幫助開發者實現遊戲中角色之間的互動與響應。 Tile-based 遊戲開發: 講解基於瓦片(Tile)的遊戲地圖設計與渲染技術,包括瓦片地圖的創建、加載與繪製,以及如何實現視差滾動等效果。 物理引擎基礎(2D): 介紹 2D 物理引擎的基本原理,如重力、速度、加速度等。講解如何使用簡單的物理模擬來增強遊戲的真實感,例如實現跳躍、落地等效果。 遊戲狀態管理與關卡設計: 講解如何設計和實現復雜的遊戲狀態機,管理遊戲的不同階段(菜單、遊戲進行中、暫停、遊戲結束等)。探討關卡設計的原則與方法,以及如何加載和切換不同的遊戲關卡。 遊戲音效與背景音樂: 詳細介紹 SoundPool 和 MediaPlayer 的高級用法,講解如何通過音效和背景音樂來提升遊戲的沉浸感和用戶體驗。 第三部分:高級 2D 遊戲開發技術與優化 位圖(Bitmap)操作與圖像處理: 深入講解 Bitmap 的內存管理,以及各種位圖操作,如縮放、裁剪、像素級處理、顔色濾鏡等,用於實現更豐富的視覺效果。 粒子係統: 講解如何創建和控製粒子係統,模擬煙霧、火焰、爆炸、魔法效果等,為遊戲增添視覺衝擊力。 遊戲存檔與讀取: 講解實現遊戲進度的保存與加載,包括使用 SharedPreferences、SQLite 數據庫、文件流等多種方式。 性能優化技巧: 針對 Android 設備的性能限製,本書將提供一係列實用的優化技巧,包括內存優化、CPU 優化、繪製優化、緩存策略等,確保遊戲流暢運行。 多綫程與異步編程: 講解如何在 Android 中安全有效地使用多綫程,如 AsyncTask、Thread、Handler、Looper,以避免 UI 綫程阻塞,並提升遊戲性能。 第四部分:跨平颱遊戲開發(可選,視具體版本內容) 遊戲引擎介紹: 簡要介紹主流的跨平颱遊戲引擎,如 Unity、Cocos2d-x 等,並對比其優缺點。 使用特定引擎進行 Android 遊戲開發: 可能會包含使用某一特定跨平颱遊戲引擎(例如 Cocos2d-x)在 Android 平颱上進行遊戲開發的示例和關鍵技術講解。 第五部分:遊戲發布與商業化 Android 應用打包與簽名: 講解如何生成 APK 文件,以及應用簽名的重要性與操作流程。 Google Play Store 發布流程: 詳細介紹將遊戲發布到 Google Play Store 的步驟,包括賬號注冊、應用信息填寫、價格設置、商店截圖準備等。 廣告集成: 講解如何在遊戲中集成廣告,如 AdMob,以實現商業化變現。 應用內購買(In-App Purchases): 講解實現應用內購買功能的原理和實現方法。 遊戲數據分析與推廣: 探討如何通過數據分析來瞭解玩傢行為,以及有效的遊戲推廣策略。 本書的特色 循序漸進的學習路徑: 本書從最基礎的 Android 開發概念講起,逐步深入到復雜的遊戲開發技術,確保不同基礎的讀者都能輕鬆上手。 豐富的實戰案例: 每一項技術點都配有清晰、可運行的示例代碼,讀者可以通過實踐加深理解,並直接應用於自己的項目中。 深入的原理剖析: 不僅教授“如何做”,更深入剖析“為什麼這麼做”,幫助讀者建立紮實的理論基礎。 性能優化是重點: 強調 Android 遊戲開發中的性能瓶頸和優化方法,幫助開發者打造流暢、響應迅速的遊戲。 全麵的內容覆蓋: 涵蓋瞭從遊戲設計、開發、優化到發布和商業化的整個流程,為讀者提供一個完整的知識體係。 貼閤實際開發需求: 本書內容緊跟 Android 開發的最新趨勢和最佳實踐,確保讀者學習到的知識具有實用價值。 適用人群 初學者: 對 Android 開發有基本瞭解,希望進入遊戲開發領域的開發者。 有經驗的 Android 開發者: 希望將現有技能擴展到遊戲開發領域的開發者。 獨立遊戲開發者: 尋求創建和發布自己 Android 遊戲的個人或小型團隊。 計算機科學專業學生: 希望學習遊戲開發實踐的在校學生。 學習本書,你將能夠: 熟練掌握 Android Studio 的遊戲開發相關配置。 運用 Canvas API 和 SurfaceView 實現高效的 2D 圖形渲染。 創建和控製遊戲中的角色、場景和特效。 實現復雜的動畫效果和用戶交互。 掌握遊戲中的碰撞檢測和物理模擬。 進行有效的遊戲性能優化。 理解遊戲存檔、發布和商業化的基本流程。 《Android 遊戲開發大全(第3版)》將是你通往成功 Android 遊戲開發者之路的得力助手,幫助你將創意轉化為引人入勝的移動遊戲體驗。