Android 4 遊戲入門經典(第3版)

Android 4 遊戲入門經典(第3版)

《Android 4 遊戲入門經典(第3版)》是2013年清華大學出版社出版的圖書,作者是Robert Green。

基本介紹

  • 中文名: Android 4 遊戲入門經典(第3版)
  • 作者:Robert Green
  • 出版時間:2013年
  • 出版社: 清華大學出版社
  • ISBN: 9787302327721  
  • 定價:79.80 元
內容簡介,圖書目錄,

內容簡介

Mario Zechner從12歲就開始進行編寫遊戲。多年來,他創建了許多原型,並在多個平台上開發過遊戲。他創建的libgdx是一個Android遊戲開發框架,許多出色的Android遊戲都是使用libgdx開發的。在目前這家公司任職之前,Mario是San Francisco的一家移動遊戲創業公司的技術主管。Mario目前致力於研究信息提取和檢索、可視化以及機器學習。Mario經常在一些會議上就遊戲編程發言或者同與會者探討遊戲編程,你可以在這類會議上見到他。也可以閱讀他的部落格(www.badlogicgames.com),或訪問他的Twitter(@badlogicgames)。
Robert Green是美國俄勒岡州波特蘭市的Battery Powered Games遊戲工作室的創辦人。他已經開發了十幾款Android遊戲,包括Deadly Chambers、Antigen、Wixel、Light Racer和Light Racer 3D。在全身心投入到開發和發布移動視頻遊戲以前,Robert分別在明尼阿波利斯和芝加哥的軟體公司中工作過,其中包括IBM Interactive。Robert目前致力於使用BatteryTech SDK進行跨平台遊戲開發和高性能移動遊戲開發。Robert經常在自己的部落格中更新關於遊戲編程的知識,在www.batterypoweredgames.com上更新他的專業遊戲開發軟體。

圖書目錄

第1章 日益流行的Android 1
1.1 Android簡介 1
1.2 版本分裂 3
1.3 谷歌的角色 3
1.3.1 Android開源項目 4
1.3.2 Google Play 4
1.3.3 谷歌I/O 4
1.4 Android的功能和體系結構 5
1.4.1 核心 5
1.4.2 運行庫和Dalvik虛擬機 6
1.4.3 系統庫 6
1.4.4 應用程式框架 7
1.5 軟體開發工具包 7
1.6 開發人員社區 8
1.7 設備,設備,設備 9
1.7.1 硬體 9
1.7.2 設備的範圍 10
1.8 所有設備之間的兼容性 13
1.9 不同的手機遊戲 14
1.9.1 人手一台遊戲機 14
1.9.2 隨時上網 14
1.9.3 普通用戶與遊戲迷 15
1.9.4 市場很大,開發人員很少 15
1.10 小結 16
第2章 從Android SDK開始 17
2.1 搭建開發環境 17
2.1.1 安裝JDK 18
2.1.2 安裝Android SDK 18
2.1.3 安裝Eclipse 19
2.1.4 安裝ADT Eclipse外掛程式 20
2.1.5 Eclipse快速瀏覽 21
2.1.6 一些實用的Eclipse快捷鍵 22
2.2 在Eclipse中新建項目及編寫代碼 23
2.2.1 創建項目 23
2.2.2 進一步分析項目 24
2.2.3 使應用程式與所有Android版本兼容 25
2.2.4 編寫應用程式代碼 25
2.3 在設備或模擬器上運行應用程式 27
2.3.1 連線設備 27
2.3.2 創建一個Android虛擬設備 28
2.3.3 安裝高級模擬器功能 29
2.3.4 運行應用程式 31
2. 4 調試和分析應用程式 33
2.4.1 LogCat和DDMS 35
2.4.2 使用ADB 37
2.5 實用的第三方工具 38
2.6 小結 39
第3章 遊戲開發基礎 41
3.1 遊戲類型 41
3.1.1 休閒遊戲 42
3.1.2 益智遊戲 43
3.1.3 動作和街機遊戲 44
3.1.4 塔防遊戲 46
3.1.5 社交遊戲 47
3.1.6 遊戲類型之外 48
3.2 遊戲設計:筆比代碼更強大 49
3.2.1 遊戲的核心機制 49
3.2.2 背景故事和藝術風格 50
3.2.3 畫面和切換 51
3.3 代碼:具體細節 55
3.3.1 應用程式和視窗管理 55
3.3.2 輸入 56
3.3.3 檔案I/O 59
3.3.4 音頻 59
3.3.5 圖形 62
3.3.6 遊戲框架 71
3.4 小結 77
第4章 面向遊戲開發人員的Android 79
4.1 定義一個Android應用程式:清單檔案 79
4.1.1 <manifest>元素 80
4.1.2 <application>元素 81
4.1.3 <activity>元素 82
4.1.4 <uses-permission>元素 83
4.1.5 <uses-feature>元素 84
4.1.6 <uses-sdk>元素 86
4.1.7 8個簡單步驟建立Android遊戲
項目 86
4.1.8 Google Play過濾器 87
4.1.9 定義遊戲圖示 88
4.2 針對有iOS/Xcode背景的讀者 89
4.2.1 Eclipse/ADT和Xcode的對比 89
4.2.2 查找和配置你的目標 89
4.2.3 其他有用的東西 90
4.3 Android API基礎 90
4.3.1 創建測試項目 91
4.3.2 活動的生命周期 94
4.3.3 處理輸入設備 99
4.3.4 檔案處理 113
4.3.5 音頻編程 119
4.3.6 播放音效 120
4.3.7 音樂流 122
4.3.8 基本圖形編程 126
4.4 最佳實踐 146
4.5 小結 146
第5章 Android遊戲開發框架 147
5.1 制定計畫 147
5.2 AndroidFileIO類 147
5.3 AndroidAudio、AndroidSound和
AndroidMusic 149
5.4 AndroidInput和
AccelerometerHandler 153
5.5 CompassHandler 155
5.5.1 Pool類:重用相當有用 156
5.5.2 KeyboardHandler 158
5.5.3 觸摸處理程式 162
5.5.4 AndroidInput:優秀的協調者 168
5.6 AndroidGraphics和AndroidPixmap 170
5.6.1 處理不同螢幕大小和解析度的問題 170
5.6.2 AndroidPixmap 174
5.6.3 AndroidGraphics:滿足繪圖需求 175
5.6.4 AndroidFastRenderView 179
5.7 AndroidGame:合併所有內容 181
5.8 小結 185
第6章 Mr. Nom入侵Android 187
6.1 創建資源 187
6.2 建立項目 189
6.3 MrNomGame:主活動 189
6.3.1 資源:便捷的資源存儲 190
6.3.2 設定:跟蹤用戶的選項設定和高分榜 191
6.3.3 LoadingScreen:從磁碟獲取資源 193
6.4 主選單畫面 194
6.5 HelpScreen類 197
6.6 高分榜畫面 199
6.6.1 渲染數字 199
6.6.2 畫面的實現 201
6.7 抽象Mr. Nom的世界:模型、視圖、控制器 203
6.7.1 Stain類 204
6.7.2 Snake和SnakePart類 205
6.7.3 World類 208
6.8 GameScreen類 212
6.9 小結 219
第7章 OpenGL ES介紹 221
7.1 OpenGL ES概述以及關注它的原因 221
7.1.1 編程模型:一個比喻 222
7.1.2 投影 223
7.1.3 規範化設備空間和視口 225
7.1.4 矩陣 225
7.1.5 渲染管道 226
7.2 準備工作 227
7.3 GLSurfaceView:從2008年開始,事情變得簡單了 227
7.4 GLGame:實現遊戲接口 230
7.5 繪製一個紅色的三角形 236
7.5.1 定義視口 236
7.5.2 定義投影矩陣 237
7.5.3 指定三角形 239
7.5.4 綜合示例 242
7.6 指定每個頂點的顏色 245
7.7 紋理映射:輕鬆地創建壁紙 248
7.7.1 紋理坐標 248
7.7.2 上傳點陣圖 249
7.7.3 紋理過濾 250
7.7.4 釋放紋理 251
7.7.5 有用的代碼片段 252
7.7.6 啟用紋理 252
7.7.7 綜合示例 252
7.7.8 Texture類 254
7.8 索引頂點:重用是有好處的 256
7.8.1 代碼整合 258
7.8.2 Vertices類 259
7.9 半透明混合處理 262
7.10 更多圖元:點、線、條和扇 264
7.11 2D變換:操作模型視圖矩陣 265
7.11.1 世界空間和模型空間 266
7.11.2 再次討論矩陣 267
7.11.3 第一個使用平移的示例 267
7.11.4 更多的變換 271
7.12 性能最佳化 274
7.12.1 測量幀率 274
7.12.2 Android 1.5平台下Hero的奇特案例 276
7.12.3 造成OpenGL ES渲染如此慢的
原因 276
7.12.4 移除不必要的狀態改變 277
7.12.5 減小紋理大小意味著需要獲取更少的像素 279
7.12.6 減少OpenGL ES/JNI方法的調用 279
7.12.7 綁定頂點的概念 280
7.12.8 寫在結束之前 283
7.13 小結 284
第8章 2D遊戲編程技巧 285
8.1 準備工作 285
8.2 向量 286
8.2.1 使用向量 286
8.2.2 一點三角學的知識 288
8.2.3 實現一個向量類 289
8.2.4 一個簡單的用法示例 293
8.3 2D物理定律淺析 296
8.3.1 牛頓和歐拉,永遠的好朋友 296
8.3.2 力和質量 297
8.3.3 理論上的運動 298
8.3.4 運動的實現 299
8.4 2D碰撞檢測和對象表示 302
8.4.1 邊界形狀 302
8.4.2 構造邊界形狀 304
8.4.3 遊戲對象的屬性 306
8.4.4 寬階段和窄階段碰撞檢測 306
8.4.5 一個詳細的示例 312
8.5 2D照相機 323
8.5.1 Camera2D類 326
8.5.2 示例 327
8.6 紋理圖集 328
8.7 紋理區域、精靈和批處理:隱藏OpenGL ES 333
8.7.1 TextureRegion類 333
8.7.2 SpriteBatcher類 334
8.8 精靈動畫 342
8.8.1 Animation類 342
8.8.2 示例 343
8.9 小結 347
第9章 Super Jumper:一個2D OpenGL ES遊戲 349
9.1 核心遊戲機制 349
9.2 背景故事和藝術風格 350
9.3 畫面和切換 350
9.4 定義遊戲世界 351
9.5 創建資源 353
9.5.1 UI元素 353
9.5.2 使用點陣字型處理文本 354
9.5.3 遊戲元素 356
9.5.4 紋理圖集 357
9.5.5 音樂與音效 358
9.6 實現Super Jumper 359
9.6.1 Assets類 360
9.6.2 Settings類 362
9.6.3 主活動 364
9.6.4 Font類 365
9.6.5 GLScreen類 366
9.6.6 主選單畫面 367
9.6.7 幫助畫面 369
9.6.8 高分畫面 372
9.6.9 模擬類 374
9.6.10 遊戲畫面 387
9.6.11 WorldRenderer類 394
9.7 是否需要最佳化 397
9.8 小結 399
第10章 OpenGL ES:進入3D世界 401
10.1 準備工作 401
10.2 3D中的頂點 402
10.2.1 Vertices3:存儲3D空間位置 402
10.2.2 示例 404
10.3 透視投影:越近則越大 407
10.4 z-buffer:化混亂為有序 409
10.4.1 完善上一個例子 410
10.4.2 混合:身後空無一物 411
10.4.3 z-buffer精度與z-fighting 413
10.5 定義3D格線 414
10.5.1 立方體:3D中的“Hello World” 414
10.5.2 一個示例 416
10.6 矩陣和變換 419
10.6.1 矩陣堆疊 419
10.6.2 用矩陣堆疊實現分層系統 421
10.6.3 一個簡單的照相機系統 427
10.7 小結 430
第11章 3D編程技巧 431
11.1 準備工作 431
11.2 3D中的向量 432
11.3 OpenGL ES中的光照 436
11.3.1 光照的工作機制 436
11.3.2 光源 437
11.3.3 材質 438
11.3.4 OpenGL ES中如何對光照過程進行運算:頂點法線 438
11.3.5 實踐 439
11.3.6 關於OpenGL ES中光照套用的一些建議 451
11.4 材質變換 452
11.5 簡單的照相機 456
11.5.1 第一人稱照相機或歐拉照相機 456
11.5.2 一個歐拉照相機的示例 459
11.5.3 跟隨照相機 463
11.6 載入模型 465
11.6.1 Wavefront OBJ格式 466
11.6.2 OBJ載入器的實現 466
11.6.3 使用OBJ載入器 471
11.6.4 關於載入模型的一些建議 471
11.7 3D中的一些物理知識 471
11.8 3D中的碰撞檢測與對象表示 472
11.8.1 3D中的邊界形狀 472
11.8.2 邊界球重疊測試 473
11.8.3 GameObject3D與DynamicGameObject3D 474
11.9 小結 475
第12章 Android Invaders遊戲 477
12.1 遊戲的核心機制 477
12.2 故事背景與藝術風格 478
12.3 畫面與切換 479
12.4 定義遊戲世界 480
12.5 創建資源 480
12.5.1 用戶界面資源 481
12.5.2 遊戲資源 482
12.5.3 音效與音樂 483
12.6 開始編寫代碼 483
12.7 Assets類 484
12.8 Settings類 487
12.9 主活動 488
12.10 主選單畫面 489
12.11 遊戲設定畫面 491
12.12 模擬類 494
12.12.1 Shield類 494
12.12.2 Shot類 494
12.12.3 Ship類 495
12.12.4 Invader類 497
12.12.5 World類 499
12.13 GameScreen類 505
12.14 WorldRender類 511
12.15 遊戲最佳化 516
12.16 小結 517
第13章 NDK原生編程 519
13.1 Android NDK的含義 519
13.2 Java原生接口 520
13.3 安裝NDK 521
13.4 安裝NDK Android項目 522
13.5 創建Java原生方法 522
13.6 創建C/C++頭檔案和實現 523
13.7 構建共享庫 525
13.8 代碼整合 527
13.9 小結 532
第14章 行銷和貨幣化 533
14.1 將遊戲貨幣化 533
14.1.1 廣告 534
14.1.2 遊戲內的產品 535
14.1.3 虛擬貨幣 535
14.1.4 賣還是不賣 536
14.1.5 授權 536
14.2 讓你的遊戲被發現 537
14.2.1 社交網路集成 537
14.2.2 發現服務 537
14.2.3 部落格和傳統的網路媒體 538
14.3 設計時就考慮盈利 538
14.4 設計時就考慮被發現 539
14.5 小結 539
第15章 發布遊戲 541
15.1 關於測試 541
15.2 成為註冊開發人員 542
15.3 給遊戲的APK簽名 543
15.4 將遊戲發布至Google Play 545
15.4.1 上傳資源 545
15.4.2 產品詳情 546
15.4.3 發布選項 547
15.4.4 APK檔案管理 548
15.4.5 發布 548
15.5 開發人員控制台 549
15.6 小結 549
第16章 進階內容 551
16.1 位置識別 551
16.2 多玩家功能 551
16.3 OpenGL ES 2.0/3.0以及更多內容 551
16.4 框架及引擎 552
16.5 網路資源 553
16.6 結束語 554

相關詞條

熱門詞條

聯絡我們