Android游戲開發實踐指南 ( 簡體 字) |
作者:(美)Rick Rogers | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 33624 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:9/1/2012 |
頁數:412 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111391548 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:本書要點
這是一本講解如何編寫Android手機游戲的書。只要讀者略有開發Android應用的經驗,就可以通過閱讀本書,將這種經驗同AndEngine開源游戲引擎結合起來,制作出2D手機游戲。無論要寫什么類型的游戲,本書都會提供范例,并逐步講解它們。本書旨在讓你熟悉AndEngine并且盡快發布游戲,其中許多例子都是為了支持一個范例游戲:《少女大戰吸血鬼》(Virgins Versus Vampires,V3)的開發。
本書開篇的第1章會介紹手機游戲的概況、流行程度、游戲的類型以及游戲策劃的范例。接下來的數章,每章將會針對一個游戲開發相關的話題展開論述。
第2章講述了用來開發游戲的工具,包括進行代碼開發、美工和聲音制作所用的工具。
第3章介紹了游戲邏輯循環的概念,并且演示了如何用AndEngine開始開發游戲。
第4章深入探討圖形繪制,詳解了AndEngine所提供的場景切換與實體修改器機制,運用它們可使游戲的顯示效果豐富多彩。
第5章再進一步深入游戲中的位圖和矢量圖形的繪制,演示了如何繪制精靈。
第6章介紹了構建動畫精靈的簡單方法,以及如何讓物體動起來。
第7章給出使用AndEngine以各種方式在游戲中顯示文本的范例。
第8章研究了Android游戲可用的用戶輸入選項,包括觸摸、多點觸摸、鍵盤、語音識別、加速度計、定位器與方向檢測器。
第9章講述了AndEngine如何載入和使用瓦片地圖,以及如何用瓦片集去構造無限廣闊的虛擬世界。
第10章演示了內建于AndEngine的粒子系統,并展示了如何用XML文件定義與保存粒子效果。
第11章展示了如何用AndEngine來查找、獲取、修改、使用背景音樂與音效。
第12章研究了物理引擎Box2D。它與AndEngine一起,使開發基于物理交互對象的游戲更加容易。
第13章研究了可以讓游戲更加智能、更加好玩的人工智能技術。
第14章搭建了一個基于游戲元素間碰撞的計分框架。
第15章探究了AndEngine可以利用擴展而完成的功能,例如創建Android活動桌布,播放MOD音樂文件,創建“增強現實游戲”,以及在多人游戲的玩家中進行通信。
第16章通過完善現有功能或增加新功能使游戲更具可玩性,并至此結束本書的范例游戲開發。
第17章講述了為確保游戲順利發行而需要做的事情,然后告訴讀者如何發行與推銷游戲。
附錄提供了每章末尾習題的答案。
本書最好按順序閱讀,但如果讀者覺得跳讀更合適的話,那樣也可以。每一個主題基本上都作為獨立的概念來講述,但是如果需要引用其他章的概念來講述它,那么那些概念也會被提到。
對于讀者來說,本書的目的很簡單:玩得開心。本書的寫作精神是,游戲應該是有趣的,而且開發游戲本身也應該有趣。愿你的游戲能夠在Android Market的“熱門下載”列表中登上榜首。
本書的目標讀者
如果讀者迫不及待地想要為Android設備開發2D游戲,并且至少具備一些用Android SDK和Java進行Android應用開發的經歷,那么本書就很適合你了。本書介紹了手機游戲的基本主題,并演示了如何用AndEngine游戲引擎去實現它們。要學習這些范例的話,不一定必須是個Android開發高手,但需要熟悉Android的基本概念〔例如活動(Activity)、服務(Service)、意圖(Intent)等〕,同時需要能熟練地閱讀與編寫Java代碼、使用Android SDK。
本書的范例代碼
書中代碼可在本書網站獲取:
http://www.informit.com/title/9780321769626。
也可以在配套的github站點獲取:
https://github.com/portmobile/LAGP-Example-Code。
致謝
衷心感謝以下人士協助筆者完成此書。
Nicolas Gramlich ,他為了打造世界級的Android游戲引擎創立了AndEngine,并將努力工作的成果作為開源項目分享給大家(也包括每位讀者在內)。Nicolas慷慨地允許我使用AndEngine作為本書的基礎,并且自愿審閱了本書的草稿。他持續地完善與擴充AndEngine,并將這些改進提供給本書使用。
Trina MacDonald,本書的組稿編輯,正是她提議寫一本Android游戲開發相關的書。她是位出色的項目經理,沒有她不知疲倦的辛苦工作,本書不可能與大家見面。
James Becwar、Stephan Branczyk、Jason Wei ,本書的技術編輯。不可能有比他們更好的技術審校者了。他們三位令我在寫書時能夠本著實事求是的態度,確保技術信息的準確性,也保證了所有代碼都能正確運行。
Songlin Qiu是位出色的拓展編輯。本書行文清晰流暢之處,都要歸功于她在審稿時提供的許多寶貴建議。如果讀者發現文字有難懂之處,恐怕要怪我未采納其中某些建議。
本書付諸刊印,要感謝生產經理Julie Nahil與文字編輯Jill Hobbs的艱苦努力。我能不過多地分散精力,始終專注于本書的寫作并最終將其完成,很大程度上要歸功于他們。
Olivia Basegio身為助理編輯,做了許多工作。她將本書草稿交給合適的人員去審閱,并將其初步裁切。她也編排了本書的插圖與許可信息,并在我忘記事情時提醒我。沒有Olivia的幫助,我們只能看到一些零碎的資料,而不可能有一本完整的書呈現在眼前。
這里無法詳盡地列出在遇到困難時鼓勵我的每位朋友與家人的名字。我要特別感謝女兒Allison Jackson和Katie Kehrl,她們一如既往的樂觀使我相信最終能完成此書,她們用自己的生活態度為我樹立了榜樣。
Susie Jackson,我的妻子,為我做的每件事情提供靈感,也包括寫這本書。她棒極了!能夠和她結婚我感到很幸運。她在生活中帶給我的自信與積極態度,讓我能夠坐在辦公室里努力創作。再次感謝你,Susie。 |
內容簡介:開發優秀的Android手機游戲! 這是一本適合有一定Android開發基礎的讀者快速而系統地學習Android游戲開發的經典教程,全書通過一個完整的經典游戲案例講解了Android游戲開發所必須掌握的理論知識,以及其流程、方法和技巧,旨在幫助讀者開發出優秀的游戲產品。書中對各種主要類型的手機游戲進行了剖析,并給出了翔實的案例代碼,讀者能從中迅速獲得實戰經驗。 值得強調的是,本書以AndEngine開源引擎為基礎,將游戲制作中的諸多話題巧妙地串聯起來,使讀者在閱讀過程中系統地學習場景、圖層、圖形繪制、精靈、動畫、文本繪制、用戶輸入、地圖、粒子系統、物理效果、人工智能、碰撞檢測、計分等開發手機游戲所必備的技能。同時,作者投入大量篇幅用于講述制作關卡、美工與聲音所需的各種工具及其用法,讀者可以借此了解到策劃、美工與聲音制作的具體流程,從而對手機游戲各項元素的整合有一個全局的把握。 此外,本書演示了《少女大戰吸血鬼》(Virgins Versus Vampires,簡稱V3)的實現過程,你可以從Android Market下載免費的《Virgins Versus Vampires》 游戲,本書將會教你如何開發這個游戲。
通過閱讀本書,可學到以下知識: 使用免費的Android代碼編寫工具、圖片編輯工具以及聲音制作工具
實現Android游戲的核心部分:游戲主邏輯循環
運用場景切換效果與實體修改器將游戲變得更加生動活潑
制作位圖與矢量圖,制作精靈與動畫效果
將觸摸、多點觸摸、鍵盤、語音識別、加速度計、定位器及羅盤等用戶輸入手段集成到游戲中
使用瓦片地圖構建虛擬的游戲世界
創建、保存并復用各種功能強大的粒子效果
搜尋、獲取、修改與使用背景音樂及音效
用Box2D實現逼真的物理效果模擬
使用AI技術將游戲變得更加靈活、更加有趣
構建根據游戲間元素的互相碰撞而計分的程序框架 |
目錄:譯者序
序
前言
第1章 手機游戲 / 1
1.1 手機游戲市場 / 2
1.2 電腦游戲的世界 / 3
1.2.1 游戲類型 / 3
1.2.2 適合于手機的游戲 / 5
1.2.3 典型的游戲組件 / 6
1.2.4 《少女大戰吸血鬼》 / 8
1.2.5 V3的設計 / 9
1.3 AndEngine范例 / 11
1.4 總結 / 12
1.5 習題 / 12
第2章 游戲要素與工具 / 14
2.1 軟件開發工具 / 15
2.1.1 Android SDK / 15
2.1.2 AndEngine游戲引擎庫 / 16
2.1.3 AndEngine游戲概念 / 17
2.1.4 Box2D物理引擎 / 19
2.2 圖形工具 / 19
2.2.1 矢量圖工具:Inkscape / 20
2.2.2 位圖工具:GIMP / 21
2.2.3 動畫捕捉:AnimGet / 22
2.2.4 瓦片地圖創建工具:Tiled / 23
2.2.5 TrueType字體創建與編輯工具:FontStruct / 23
2.3 聲音工具 / 24
2.3.1 音效工具:Audacity / 24
2.3.2 背景音樂工具:MuseScore / 25
2.4 初試身手:制作啟動畫面 / 26
2.4.1 創建游戲項目 / 27
2.4.2 加入AndEngine庫 / 27
2.4.3 加入啟動畫面代碼 / 28
2.4.4 用模擬器運行游戲 / 30
2.4.5 用Android設備運行游戲 / 31
2.5 總結 / 31
2.6 習題 / 32
第3章 游戲循環與菜單 / 33
3.1 游戲循環概述 / 34
3.2 AndEngine的游戲循環 / 35
3.2.1 初始化Engine對象 / 35
3.2.2 其他Engine類 / 36
3.3 為V3增加菜單屏幕 / 37
3.3.1 AndEngine的菜單 / 37
3.3.2 構建V3的開始菜單 / 40
3.3.3 創建菜單 / 40
3.3.4 MainMenuActivity類 / 45
3.3.5 常數與字段 / 46
3.3.6 onLoadResources()方法 / 46
3.3.7 onLoadScene()方法 / 46
3.3.8 createStaticMenuScene()方法與createPopUpScene()方法 / 46
3.3.9 onKeyDown()方法與onMenuItemClicked()方法 / 47
3.3.10 從啟動畫面切換到菜單 / 47
3.4 內存使用 / 50
3.5 “退出”選項 / 50
3.6 總結 / 50
3.7 習題 / 51
第4章 場景、圖層、場景切換與實體修改器 / 52
4.1 AndEngine的場景 / 53
4.1.1 實體/組件模型 / 53
4.1.2 Entity類 / 54
4.1.3 構造器 / 54
4.1.4 Entity類的位置相關方法 / 55
4.1.5 Entity類的縮放相關方法 / 55
4.1.6 Entity類的顏色相關方法 / 56
4.1.7 Entity類的旋轉相關方法 / 57
4.1.8 管理子對象 / 57
4.1.9 管理Modifier / 58
4.1.10 其他有用的Entity類方法 / 58
4.1.11 Layer類 / 59
4.1.12 Scene類 / 59
4.1.13 背景管理 / 60
4.1.14 子Scene對象管理 / 60
4.1.15 Layer對象管理 / 61
4.1.16 上級Scene對象管理 / 61
4.1.17 觸摸區域管理 / 61
4.1.18 特殊Scene類 / 61
4.1.19 用于Entity的Modifier類 / 62
4.1.20 EntityModifier類的通用方法 / 63
4.1.21 位置相關的EntityModifier類 / 63
4.1.22 縮放相關的EntityModifier類 / 66
4.1.23 顏色相關的EntityModifier類 / 67
4.1.24 旋轉相關的EntityModifier類 / 67
4.1.25 透明度相關的EntityModifier類 / 68
4.1.26 延遲相關的EntityModifier類 / 69
4.1.27 Modifier的組合 / 69
4.1.28 EaseFunction / 71
4.2 創建游戲第1關的場景 / 79
4.3 總結 / 84
4.4 習題 / 85
第5章 繪制與精靈 / 86
5.1 快速回顧Entity類 / 87
5.2 繪制線條與矩形 / 88
5.2.1 線條 / 88
5.2.2 矩形 / 88
5.3 精靈 / 88
5.3.1 貼圖 / 89
5.3.2 效率問題 / 99
5.3.3 復合精靈 / 100
5.4 總結 / 104
5.5 習題 / 105
第6章 動畫 / 106
6.1 動畫所需素材 / 107
6.2 動畫的瓦片貼圖 / 108
6.3 AndEngine的動畫 / 108
6.4 動畫范例 / 110
6.5 將動畫加入Level1Activity類 / 114
6.6 動畫制作的問題 / 122
6.7 高級話題:從3D模型中制作2D動畫 / 123
6.8 總結 / 123
6.9 習題 / 123
第7章 文本 / 125
7.1 字型與字體 / 126
7.2 載入字型 / 127
7.2.1 Font類 / 127
7.2.2 StrokeFont類 / 127
7.2.3 FontFactory類 / 128
7.2.4 FontManager類 / 128
7.2.5 Typeface類 / 128
7.3 AndEngine中的文本 / 129
7.3.1 AndEngine中的文本API / 129
7.3.2 桌面通知 / 132
7.4 定制字型 / 133
7.5 將定制字型加入V3 / 135
7.6 總結 / 142
7.7 習題 / 142
第8章 用戶輸入 / 144
8.1 Android與AndEngine的輸入方式 / 145
8.1.1 字母鍵盤與袖珍鍵盤 / 146
8.1.2 觸摸 / 146
8.1.3 自定義手勢 / 152
8.1.4 屏幕游戲手柄 / 152
8.1.5 加速計 / 153
8.1.6 位置和方向 / 153
8.1.7 語音 / 158
8.2 將用戶輸入加入V3 / 161
8.3 總結 / 166
8.4 習題 / 166
第9章 瓦片地圖 / 168
9.1 為何使用瓦片地圖 / 169
9.2 瓦片地圖的類型 / 169
9.2.1 正交瓦片地圖 / 171
9.2.2 等距投影瓦片地圖 / 171
9.3 瓦片地圖的結構 / 172
9.4 AndEngine中的瓦片地圖 / 172
9.4.1 TMX與TSX文件 / 172
9.4.2 TMXLoader類 / 172
9.4.3 TMXTiledMap類 / 173
9.4.4 TMXLayer類 / 174
9.4.5 TMXTile類 / 174
9.5 瓦片編輯器:Tiled / 175
9.6 TMX文件 / 176
9.7 正交瓦片地圖游戲:《打吸血鬼》 / 177
9.7.1 WAV的瓦片地圖 / 177
9.7.2 創建WAV的瓦片集 / 178
9.7.3 創建WAV的瓦片地圖 / 179
9.7.4 《打吸血鬼》游戲的代碼 / 181
9.8 等距投影瓦片地圖 / 191
9.9 總結 / 191
9.10 習題 / 192
第10章 粒子系統 / 193
10.1 粒子發射器是什么 / 194
10.2 粒子系統如何運作 / 195
10.3 AndEngine的粒子系統 / 195
10.3.1 ParticleSystem類 / 196
10.3.2 ParticleEmitter類 / 197
10.3.3 ParticleInitializer類 / 198
10.3.4 ParticleModifier類 / 199
10.3.5 有用的ParticleSystem類方法 / 200
10.4 創建粒子系統 / 201
10.4.1 以傳統方式創建粒子系統 / 201
10.4.2 以XML文件創建粒子系統 / 202
10.5 將粒子發射器加入V3游戲中 / 206
10.5.1 以傳統方式制作V3的爆炸效果 / 206
10.5.2 以XML文件方式制作V3的爆炸效果 / 210
10.6 總結 / 211
10.7 習題 / 211
第11章 聲音 / 213
11.1 如何在游戲中使用聲音 / 214
11.1.1 音樂 / 214
11.1.2 音效 / 214
11.2 音樂與音效的來源 / 215
11.3 音樂與音效制作工具 / 216
11.4 音頻解碼器 / 216
11.5 使用AndEngine播放聲音 / 217
11.5.1 Music類 / 218
11.5.2 Sound類 / 218
11.5.3 MusicFactory類 / 219
11.5.4 SoundFactory類 / 219
11.6 將聲音加入V3游戲 / 220
11.6.1 創建音效 / 220
11.6.2 創建背景音樂 / 223
11.6.3 修改V3游戲的代碼 / 225
11.7 總結 / 235
11.8 習題 / 236
第12章 物理效果 / 237
12.1 Box2D物理引擎 / 238
12.1.1 Box2D概念 / 238
12.1.2 設定Box2D / 240
12.2 構建物理學游戲的關卡 / 241
12.3 AndEngine與Box2D / 242
12.3.1 下載AndEnginePhysicsBox2DExtension并將其加入游戲項目 / 242
12.3.2 Box2D的API / 244
12.3.3 簡單的物理效果范例 / 247
12.3.4 關卡加載 / 252
12.4 《憤怒的村民》:V3中的物理學小游戲 / 255
12.5 實現IV游戲 / 255
12.5.1 創建關卡 / 256
12.5.2 編寫IVActivity.java / 260
12.6 總結 / 270
12.7 習題 / 270
第13章 人工智能 / 272
13.1 游戲AI相關話題 / 273
13.1.1 簡單的腳本 / 273
13.1.2 決策樹、Minimax樹與狀態機 / 273
13.1.3 專家系統或基于規則的決策系統 / 276
13.1.4 神經網絡 / 277
13.1.5 遺傳算法 / 278
13.1.6 路徑查找 / 279
13.1.7 動態困難度調節 / 280
13.1.8 程序化的音樂生成 / 280
13.2 實現V3游戲的AI / 281
13.3 總結 / 290
13.4 習題 / 290
第14章 計分與碰撞 / 291
14.1 計分系統設計 / 292
14.1.1 更新小游戲取得的分數 / 293
14.1.2 記錄5個最高分 / 293
14.1.3 在小游戲場景中顯示分數 / 294
14.1.4 分數頁面的顯示 / 295
14.2 AndEngine的碰撞 / 298
14.2.1 AndEngine的Shape碰撞 / 298
14.2.2 Box2D的碰撞 / 299
14.3 開始計算玩家的得分 / 300
14.4 《墓地》(第1關)場景 / 300
14.4.1 常量和字段 / 300
14.4.2 onLoadEngine方法與onLoadResources方法 / 303
14.4.3 onLoadScene方法 / 304
14.4.4 mStartVamp任務 / 306
14.5 《打吸血鬼》 / 307
14.5.1 常量和字段 / 307
14.5.2 onLoadScene方法 / 308
14.5.3 openCoffin和closeCoffin方法 / 309
14.6 《憤怒的村民》 / 310
14.6.1 常量和字段 / 310
14.6.2 onLoadScene方法 / 311
14.6.3 onLoadComplete方法 / 312
14.6.4 addStake方法 / 313
14.7 總結 / 314
14.8 習題 / 314
第15章 多媒體擴展包 / 315
15.1 下載多媒體擴展包 / 316
15.2 動態壁紙 / 317
15.2.1 Android動態壁紙 / 317
15.2.2 創建V3的Android動態壁紙 / 318
15.3 MOD格式音樂 / 322
15.3.1 搜尋MOD格式的音樂 / 322
15.3.2 XMP MOD播放器 / 323
15.4 多人游戲 / 324
15.5 AndEngine的多點觸摸 / 326
15.6 增強現實游戲 / 328
15.7 總結 / 332
15.8 習題 / 332
第16章 游戲集成 / 334
16.1 困難度調節 / 336
16.1.1 困難度參數的保存 / 336
16.1.2 困難度參數的設定 / 337
16.2 游戲結束畫面的代碼 / 337
16.3 第1關:主游戲 / 340
16.4 《打吸血鬼》 / 345
16.5 《憤怒的村民》 / 347
16.6 選項菜單 / 350
16.7 總結 / 350
16.8 習題 / 350
第17章 測試與發行 / 352
17.1 應用程序商業模式 / 353
17.2 測試與發行準備工作 / 354
17.2.1 在實際設備上測試游戲 / 354
17.2.2 考慮加入終端用戶許可協議 / 355
17.2.3 向Manifest文件加入圖標與標簽 / 357
17.2.4 關閉記錄與調試功能 / 357
17.2.5 在游戲中增加版本號 / 357
17.2.6 獲取密鑰 / 358
17.2.7 編譯與簽名最終的.apk文件 / 359
17.2.8 測試最終的.apk文件 / 359
17.3 發行游戲 / 360
17.3.1 Android Market / 360
17.3.2 Amazon App Store / 362
17.4 推廣游戲 / 363
17.4.1 App Store推廣 / 364
17.4.2 游戲評論網站推廣 / 366
17.4.3 手機廣告 / 366
17.4.4 口碑營銷 / 367
17.4.5 社交網絡推廣 / 367
17.5 總結 / 367
附錄 習題解答 / 369 |
序: |