基本信息
高等院校3G人才培養規劃教材
Android遊戲開發案例與關鍵技術
華清遠見3G學院,鄭萌等編著
ISBN978-7-121-19325-5
2013年3月出版
定價:65.00元
300頁
16開
內容提要
本書主要介紹了遊戲最基本的理論內容,包括圖層、矩陣、多執行緒以及遊戲素材,在介紹理論的同時也給出了相關的代碼;以及具體Android遊戲的開發流程和代碼分析,介紹了兩款遊戲的編寫方法:一款是大家耳熟能詳的捕魚遊戲,另一款是一個新開發的動作類遊戲——末日遊戲。
本書是大學院校嵌入式技術專業、電子信息類專業的課程教材,也可供中、高等職業技術院校使用。
目錄
第1章 初識Android的遊戲世界 1
1.1 主流手機遊戲開發平台 1
1.1.1 Java ME 1
1.1.2 Symbian OS 2
1.1.3 Windows Mobile 3
1.1.4 Android 3
1.2 手機遊戲概述 4
1.2.1 智慧型手機系統 4
1.2.2 手機遊戲的發展與繁榮 5
1.2.3 手機遊戲類型 5
1.2.4 手機遊戲特點 6
1.3 掀開Android的面紗 7
1.3.1 選擇Android的理由 7
1.3.2 Android的應用程式框架 8
1.3.3 Android應用程式組件 9
1.4 Android 開發環境的安裝與配置 10
1.4.1 安裝JDK和配置Java開發環境 10
1.4.2 Eclipse的安裝 11
1.4.3 SDK和ADT的安裝和配置 11
1.5 第一個Android套用 13
1.5.1 創建第一個Android套用 13
1.5.2 在模擬器上運行程式 15
1.5.3 在手機上運行程式 17
1.6 本章小結 18
第2章 圖層 19
2.1 圖層結構 19
2.1.1 圖層的組成元素 19
2.1.2 圖層的組織 20
2.2 圖層調用 22
2.2.1 界面的視圖——SurfaceView類 22
2.2.2 創建MainSurface 23
2.2.3 繪製MainSurface 23
2.3 圖層示例 28
2.4 本章小結 32
第3章 遊戲中的多執行緒 33
3.1 多執行緒的使用 33
3.1.1 遊戲邏輯的實現 33
3.1.2 創建多個執行緒 34
3.2 多執行緒的注意事項 34
3.2.1 同步問題 34
3.2.2 數據安全問題——執行緒鎖 38
3.3 本章小結 40
第4章 遊戲素材 41
4.1 素材的標準 41
4.1.1 圖片素材的標準 41
4.1.2 音樂素材的標準 43
4.2 圖片素材的裁剪 43
4.2.1 裁剪原理 44
4.2.2 裁剪實現 44
4.3 讓素材動起來 49
4.4 本章小結 50
第5章 矩陣 51
5.1 數學中的矩陣 51
5.1.1 矩陣相加及相減 52
5.1.2 乘法 52
5.1.3 單位矩陣 53
5.1.4 逆矩陣 54
5.1.5 轉置矩陣 54
5.2 Android矩陣套用 55
5.2.1 Matrix基本操作 55
5.2.2 Matrix套用 57
5.3 本章小結 60
第6章 OpenGL ES 2.0入門教程 61
6.1 Android系統下OpenGL ES 2.0學習的先決條件 61
6.2 OpenGL ES 2.0簡介 61
6.3 Android系統下OpenGL ES 2.0學習入門 63
6.3.1 可視化3D世界 64
6.3.2 了解緩衝區 66
6.3.3 了解矩陣的用法 66
6.3.4 定義頂點和片段渲染器 67
6.3.5 載入渲染器到OpenGL中 68
6.3.6 把頂點和片段渲染器連結到一個程式 69
6.3.7 設定視角投影 70
6.3.8 在螢幕上繪製 71
6.4 標準漫射照明 72
6.4.1 什麼是光 72
6.4.2 不同類型的光 73
6.4.3 模擬光 74
6.5 在每像素基礎上套用相同照明技術 80
6.5.1 什麼是每像素照明 80
6.5.2 從每個頂點移動到每個片段照明 80
6.5.3 每像素照明的概觀 82
6.6 如何添加紋理 83
6.6.1 紋理的基本知識 83
6.6.2 紋理坐標 84
6.6.3 紋理映射的基本知識 84
6.6.4 頂點渲染器 85
6.6.5 片段渲染器 85
6.6.6 從圖像檔案中載入紋理 86
6.6.7 在場景中套用紋理 88
6.7 本章小結 90
第7章 遊戲開發實例“小魚快跑” 91
7.1 遊戲策劃 91
7.2 遊戲資源 92
7.3 遊戲開發 92
7.3.1 遊戲框架設計 92
7.3.2 背景設計 100
7.3.3 精靈設計 100
7.3.4 遊戲特效 112
7.3.5 遊戲音效 117
7.4 本章小結 118
第8章 末日遊戲一 119
8.1 遊戲開發動機 119
8.2 遊戲創意 120
8.3 設立項目 121
8.4 遊戲的基本架構 124
8.4.1 Android手機上的遊戲架構 125
8.4.2 用戶輸入 125
8.4.3 遊戲邏輯 125
8.5 基本的遊戲循環 126
8.6 顯示圖像 134
8.7 移動圖像Moving Images on the Screen with Android 140
8.8 遊戲循環 144
8.9 測量的FPS Measuring FPS 148
8.10 本章小結 151
第9章 末日遊戲二 152
9.1 精靈動畫 152
9.2 粒子爆炸 156
9.3 遊戲實體——策略模式 161
9.4 點陣圖字型 173
9.5 設計遊戲中的實體、對象的組合策略 178
9.6 Android 3D編程——透視投影 188
9.7 在遊戲中使用MVC模式 192
9.8 本章小結 206
第10章 項目介紹與需求規格說明 207
10.1 項目描述 207
10.2 項目目標 207
10.3 項目特點 208
10.4 項目的目標客群 208
10.5 項目的團隊介紹 208
10.6 團隊成員角色 209
10.7 項目開發的過程模型 209
10.8 需求規格說明 209
10.8.1 遊戲描述 209
10.8.2 功能需求 210
10.9 本章小結 215
第11章 項目設計階段 216
11.1 開始應用程式 216
11.2 開始遊戲 217
11.3 遊戲循環 218
11.4 更新世界 219
11.5 場景圖 220
11.6 繪製世界 220
11.7 HUD 223
11.7.1 移動 223
11.7.2 動作 224
11.7.3 生命條和法力條 224
11.8 玩家動畫 224
11.9 施加法術 225
11.10 碰撞處理 226
11.11 載入世界和遊戲對象 228
11.12 玩家旋轉 229
11.13 法力再生 230
11.14 客戶端連線 230
11.15 遊戲伺服器 230
11.16 最佳化 231
11.16.1 記憶體分配 231
11.16.2 執行緒 231
11.17 動作系統 231
11.18 更新管理器與事件處理器/進程管理器 231
11.19 遊戲伺服器 233
11.20 客戶端網路 234
11.21 輸入 234
11.21.1 移動 234
11.21.2 手勢/動作 235
11.22 繪製 235
11.23 遊戲循環 236
11.24 碰撞 237
11.25 本章小結 237
第12章 實現和測試 238
12.1 命名規則 238
12.2 原始代碼結構 238
12.3 單件設計模式 239
12.4 NO.HIG.RAG.UpdateManager 240
12.5 NO.HIG.RAG.Controllers 241
12.5.1 控制器 241
12.5.2 TranslateController 241
12.5.3 RotateController 243
12.5.4 AnimationController 243
12.5.5 動作控制器 244
12.5.6 REGENCONTROLLER狀態控制器 244
12.6 NO.HIG.RAG.ACTIONS 244
12.6.1 動作 245
12.6.2 SpellDefault 246
12.7 NO.HIG.RAG.GUI 247
12.7.1 手勢 247
12.7.2 移動 247
12.8 NO.HIG.RAG.NETWORK 248
12.8.1 網路傳送者 248
12.8.2 網路接收者 248
12.8.3 結合 248
12.9 NO.HIG.RAG.COLLISION 248
12.9.1 CollisionManager 248
12.9.2 單元 248
12.10 NO.HIG.RAG.HUMAN 249
12.10.1 Human 249
12.10.2 Player 249
12.10.3 NetworkPlayer 250
12.11 NO.HIG.RAG.SCENEGRAPH 250
12.11.1 SCENEGRAPH 250
12.11.2 Node 250
12.11.3 TranslateNode 251
12.11.4 RotateNode 251
12.11.5 GeometryNode 252
12.11.6 TextureNode 252
12.11.7 GroupNode 253
12.11.8 SwitchNode 253
12.11.9 節點初始化 254
12.11.10 序列化 254
12.12 NO.HIG.RAG.DATASTRUCTURES 254
12.13 工具 255
12.13.1 分析遊戲對象和創建場景圖形檔案 255
12.13.2 要點 255
12.13.3 BuildInitialSceneGraph 255
12.13.4 COLLADAPARSE 256
12.13.5 GAMEOBJECT 256
12.14 伺服器 256
12.14.1 通信 256
12.14.2 組件 256
12.14.3 資料庫表 257
12.15 測試的方法與戰略 257
12.15.1 測試戰略 257
12.15.2 測試的工具/方法 258
12.15.3 遊戲服務 258
12.16 成果的討論 258
12.16.1 成果 258
12.16.2 討論 259
12.17 角色 260
12.18 工作方法Scrum 260
12.19 遊戲完成後的總結 262
12.19.1 獨立開發還是使用中間件 262
12.19.2 合併系統 262
12.19.3 關於OpenGL / Android 的問題 262
12.19.4 動作系統 262
12.19.5 Collada與.obj 263
12.20 本章小結 263
第13章 項目相關文檔與項目計畫 265
13.1 項目會議日記 265
13.2 工作日誌 271
13.3 狀態報告 275
13.4 Scrum會議 276
13.5 日常Scrum 280
13.6 首要技術描述 282
13.7 項目目標和邊界 283
13.7.1 背景 283
13.7.2 目標 283
13.7.3 邊界 283
13.8 項目範圍 284
13.8.1 項目描述 284
13.8.2 範圍 284
13.9 項目組織 284
13.9.1 僱主和諮詢師 284
13.9.2 職責和角色 284
13.10 團隊規定和例程 285
13.10.1 團隊規定 285
13.10.2 例程 285
13.11 資源 285
13.12 計畫、會議和報告 285
13.12.1 系統開發模型 285
13.12.2 會議 286
13.12.3 狀態報告 286
13.13 質量保證 287
13.13.1 測試 287
13.13.2 代碼會議 287
13.14 甘特圖 287
13.15 本章小結 288
作者簡介
華清遠見教育集團及3G學院介紹
華清遠見教育集團是國內成立較早、規模較大的專業嵌入式培訓機構。為滿足快速增長的移動開發領域對Android等主流嵌入式作業系統研發人才的需求,華清遠見在多年高端嵌入式專業培訓和豐富的企業內訓實施經驗的基礎上,於2004年正式成立華清遠見3G學院,學院充分整合行業經驗及專業領域的企業合作資源優勢,打造出專業、科學的實訓體系,幫助合作院校時刻緊跟行業用人需求的最新趨勢,引導畢業生在知識結構上更好地實現與企業真實需求的對接,從而有效提高其就業競爭優勢,順利進入專業研發領域。
華清遠見研發中心介紹
華清遠見研發中心是目前國內比較優秀的嵌入式專業平台及套用服務的提供商。研發中心立足於嵌入式技術、移動開發技術和物聯網技術的套用和開發,承接對應領域專業的產品研發和方案設計及嵌入式OEM/ODM的項目開發服務。同時中心還致力於嵌入式、移動開發及物聯網實驗平台的研發,自主研發的教學實驗平台可以更好地滿足培訓課程體系的需要,並將之及時轉化為適合於在職工程師及大學生專業的教學方案及教學系統,並已經在國內近百所高校得到廣泛套用,成為高校專業實驗室建設的成功範本。此外,中心培訓教材研發部門目前已公開出版60多本教材,成為行業較權威的圖書,保守估計有超過20萬的讀者從中受益。
前言
Android一詞英文本義指“機器人”,是由Google公司於2007年11月正式對外發布的,作為一種以Linux為基礎的開放原始碼作業系統,主要使用於便攜設備。依靠Google的強大開發和媒體資源,憑藉其開放性和優異性,Android平台在發展的過程中得到了包括大手機廠商和著名移動運營商在內的業界的廣泛支持,除手機的套用之外,目前已逐漸擴展到平板電腦及其他領域。2011年第一季度,Android在全球的市場份額首次超過Symbian系統,躍居全球第一。據2012年2月數據,Android占據全球智慧型手機作業系統市場52.5%的份額,中國市場占有率為68.4%。與此同時,隨著行業的迅猛發展,Android研發工程師更是日益成為IT職場的緊缺人才。近幾年來,各大學、院校已經紛紛開設Android移動開發專業或方向。但是,各院校在Android專業教學建設的過程中幾乎都面臨教材難覓、內容更新遲緩的困境。雖然目前市場上的Android開發相關書籍比較多,但幾乎都是針對有一定基礎的業內研發人員編寫的,並不完全符合高校的教學要求。高校教學需要一套充分考慮學生現有知識基礎和接受度的,明確各門課程教學目標的,便於學校安排課時的Android專業系列教材。
針對高校專業教材缺乏的現狀,我們以多年來在嵌入式工程技術領域及移動開發行業內人才培養、項目研發的經驗為基礎,匯總了近幾年積累的數百家企業對Android研發相關崗位的真實需求,並結合行業套用技術的最新狀況及未來發展趨勢,調研了開設Android專業的高等院校的課程設定情況、學生特點和教學用書現狀。我們通過細緻的整理和分析,對專業技能和基本知識進行了合理劃分,編寫了這套高等院校Android開發人才培養規劃教材,包括以下4本:
《Android系統下Java編程詳解》;
《Android應用程式開發與典型案例》;
《Android遊戲開發案例與關鍵技術》;
《Android系統移植與驅動開發技術》。
本套教材按照專業整體教學要求組織編寫,各自對應的主幹課程之間既相對獨立又有機銜接,整套教材具有系統性。考慮到Android研發領域對學生Java語言能力要求較高,專門有針對性地編寫了《Android系統下Java編程詳解》這本教材,可作為“Java語言基礎”課程的後續提高課程使用;《Android應用程式開發與典型案例》則結合Android套用開發的核心知識,重點突出了貫穿前面所學知識的實訓案例及內容,供“Android應用程式開發”課程使用;在Android遊戲開發方面,根據各院校的教學重點和行業實際套用情況,量身定製地編寫了《Android遊戲開發案例與關鍵技術》;《Android系統移植與驅動開發技術》側重介紹Android底層移植和驅動技術。
本書作為本套教材之一,重點講解了Android遊戲開發的核心技術和典型套用。移動設備上的遊戲相較於PC遊戲或者遊戲控制台,最突出的優勢就是便攜性,就比如為什麼當初GameBoy比其他控制台遊戲賣得多,原因之一就是便攜性,人們可以隨時隨地玩他們選擇的遊戲。其實與電腦遊戲相比,手機可能不是一個好的遊戲設備,但是人們可以時刻把它們帶在身邊。在任何地方、任何空閒的時間裡來享受遊戲帶給他們的快樂。本書將結合豐富的實例重點講解Android遊戲開發的相關經驗和技巧。本書內容注重實用,使學生達到學用結合的目的。
本書共13章,主要介紹了遊戲最基本的理論內容,包括圖層、矩陣、多執行緒以及遊戲素材,並在介紹理論的同時也給出了相關的實現代碼;此外,還具體介紹了兩款遊戲的完整開發流程和示範代碼分析。
本書由鄭萌主編並統校全稿,參與本書編寫的人員有謝培良、崔浩、周志強、李宗亮、李珊珊、吳現凱、高良偉、王澤政、蔣鐸、袁升、付世全、趙健喬、趙晶晶、范愛偉。本書的完成需要感謝華清遠見嵌入式學院及華清遠見3G學院,教材內容參考了學院與嵌入式及移動開發企業需求無縫對接的、科學的專業人才培養體系。對教材的編寫工作做出了貢獻的劉辰、李倩等人在書稿的編寫過程中認真閱讀了所有章節,在後期審校工作中提供了很多幫助,在此表示衷心的感謝。
編著者