-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
防疫期間 星期日公休
9/23 新書到! 9/14 新書到! 9/7 新書到! 8/31 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Android 3D游戲程序設計

( 簡體 字)
作者:[美]羅伯特·秦 著 類別:1. -> 程式設計 -> 手機程式 -> Android
譯者:劉君 譯
出版社:清華大學出版社Android 3D游戲程序設計 3dWoo書號: 54282
詢問書籍請說出此書號!

有庫存
NT定價: 745
折扣價: 700

出版日:3/1/2021
頁數:452
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302564997
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書通過Java和OpenGL ES開發Android平臺上的3D游戲。開發過程中將使用安裝了Android開發工具(ADT)插件的Eclipse集成開發環境(IDE)。本書并不是一本簡單的參考書,而是通過示例和學習用例展示游戲開發中的關鍵概念,主要涵蓋以下內容。
第1章整體講述Android、Android SDK、如何針對開發環境設置計算機,以及簡單的“Hello World”示例。
第2章介紹Java語言、基本的Android Java程序框架和與Java OpenGL ES框架相關基本信息。
第3章討論3D數學、向量、矩陣和向量-矩陣操作。
第4章闡述Android上的OpenGL ES、3D網格、光照機制、材質、紋理、持久化數據存儲,以及如何利用頂點和片元著色器創建重力網格。
第5章探討碰撞和牛頓力學。
第6章討論聲音和平視(head-up)顯示。
第7章考查如何創建玩家角色,包括 Drone Grid游戲中與玩家角色關聯的元素,如武器、彈藥和玩家的HUD。
第8章詳細介紹如何創建Drone Grid游戲中的敵方角色,其中包括Arena對象和坦克對象。相比較而言,Arena對象其行為相對簡單,而坦克對象則是一類較為復雜的角色,涉及復雜的人工智能技術。
第9章介紹Drone Grid游戲中的用戶界面,包括菜單系統、高分表的創建以及高分輸入菜單。
第10章將前述章節內容整合至最終的Drone Grid游戲中,最完整的工作游戲集成了前述章節中的全部元素,如菜單、HUD,以及Arena對象和坦克對象這一類敵方角色。
第11章討論Android本地開發工具包和Java本地接口(JNI)。
第12章介紹如何發布Android游戲,其中包含一個Android市場列表,并以此上傳游戲發行文件、支持Android廣告網絡列表,以及一個審查Android游戲的游戲網站列表。
內容簡介:

《Android 3D游戲程序設計》詳細闡述了與Android 3D游戲設計相關的解決方案,主要包括Android簡介、Android中的Java語言、3D數學知識、基于OpenGL ES的3D圖形學、運動和碰撞、游戲環境、創建玩家角色、創建敵方角色、用戶界面、最終的Drone Grid游戲、Android原生開發包(NDK)、游戲的發布和市場化運作等內容。此外,本書還提供了豐富的示例和代碼,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
目錄:

第1章Android簡介 1
1.1Android概述 1
1.2AndroidSDK 1
1.2.1Android軟件開發工具包(SDK)的需求條件 1
1.2.2AndroidSDK組件 2
1.2.3配置開發環境 5
1.2.4Android開發工具集成開發環境 6
1.3“HelloWorld”示例程序 11
1.3.1創建新的Android項目 11
1.3.2Android模擬器 16
1.3.3真實的Android設備 18
1.3.4主源代碼 19
1.3.5圖形布局 20
1.3.6實際的“HelloWorld”數據 22
1.4本章小結 22
第2章Android中的Java語言 23
2.1Java語言概述 23
2.2Java注釋 23
2.3Java基本數據類型 24
2.3.1數組 24
2.3.2數據修飾符 24
2.4Java運算符 25
2.4.1算術運算符 25
2.4.2一元運算符 26
2.4.3條件運算符 26
2.4.4位運算符和移位運算符 26
2.5Java流控制語句 27
2.6Java類 28
2.6.1包和類 28
2.6.2訪問包中的類 28
2.6.3Java接口 29
2.6.4訪問類變量和函數 29
2.7Java函數 30
2.8基本的AndroidJava程序框架 31
2.8.1Activity類的生命周期 31
2.8.2Activity類生命周期的關鍵點 32
2.8.3查看Activity的生命周期 32
2.9基本的AndroidJavaOpenGL框架 34
2.9.1單視圖OpenGLES應用程序 34
2.9.2OpenGLES多視圖應用程序 37
2.103DOpenGL“HelloDroid”示例 40
2.10.1將項目示例導入Eclipse中 40
2.10.2MainActivity和MyGLSurfaceView類 40
2.10.3MyGLRenderer類 42
2.10.4類概述 46
2.10.5體驗“HelloDroid”示例程序 47
2.11本章小結 49
第3章3D數學知識 51
3.1向量和向量操作 51
3.1.1向量的含義 51
3.1.2Vector類 54
3.1.3向量的模 54
3.1.4向量的標準化 55
3.1.5向量加法 55
3.1.6向量乘法 56
3.1.7向量逆置 57
3.1.8直角三角形 58
3.1.9向量點積 58
3.2矩陣和矩陣操作 60
3.2.1矩陣的含義 60
3.2.2Android內建Matrix類 61
3.2.3單位矩陣 61
3.2.4矩陣轉置 61
3.2.5矩陣乘法 62
3.2.6逆矩陣 63
3.2.7齊次坐標 63
3.2.8使用矩陣平移對象 63
3.2.9使用矩陣旋轉對象 64
3.2.10使用矩陣縮放對象 65
3.2.11組合矩陣 65
3.3操控3D空間中的對象 66
3.3.1構建3D對象的模型矩陣 66
3.3.2向對象中添加旋轉行為 68
3.3.3在3D空間中移動對象 69
3.3.4縮放對象 71
3.4本章小結 72
第4章基于OpenGLES的3D圖形學 73
4.1Android上的OpenGLES 73
4.1.1OpenGL對象渲染 73
4.1.2渲染過程 74
4.2OpenGLES著色語言 80
4.2.1基本數據類型 80
4.2.2向量分量 81
4.2.3運算符和表達式 81
4.2.4程序流控制語句 82
4.2.5存儲限定符 83
4.2.6保留變量 84
4.2.7內置函數 84
4.3頂點著色器 85
4.4片元或像素著色器 86
4.5Shader類 87
4.6相機 94
4.73D對象網格 100
4.7.1網格頂點數據 100
4.7.2MeshEx類 101
4.8光照機制 107
4.8.1光照機制概述 107
4.8.2PointLight類 108
4.8.3構建法線矩陣 111
4.8.4頂點著色器中的光照 112
4.8.5片元著色器光照 115
4.9材質 116
4.9.1Material類 117
4.9.2片元著色器中的材質 117
4.10紋理 118
4.10.1紋理放大和縮小 118
4.10.2紋理剪裁和重復 119
4.10.3Texture類 120
4.10.4頂點著色器中的紋理 122
4.10.5片元著色器中的紋理 123
4.11本章小結 123
第5章運動和碰撞 125
5.1運動行為概述 125
5.1.1線性速度和角加速度 125
5.1.2牛頓運動定律 126
5.1.3重力 127
5.1.4角速度和角加速度 127
5.1.5旋轉作用力 128
5.2Physics類 129
5.3基于作用力的線性運動和角運動示例 135
5.3.1創建4面紋理立方體 135
5.3.2調整Object3d類 136
5.3.3調整MyGLRenderer類 137
5.4碰撞行為概述 139
5.4.1碰撞檢測 139
5.4.2調整MeshEx類 140
5.4.3調整Object3d類 143
5.4.4碰撞類型 144
5.4.5調整Physics類 145
5.4.6碰撞計算 149
5.4.7最終的Physics類 150
5.5碰撞計算示例 151
5.5.1調整MyGLRenderer類 151
5.5.2牛頓萬有引力定律 154
5.6使用頂點著色器創建重力網格 155
5.6.1修改Physics類 155
5.6.2修改MeshEx類 155
5.6.3GravityGridEx類 156
5.6.4創建新的頂點著色器 167
5.6.5調整MyGLRenderer類 170
5.7本章小結 175
第6章游戲環境 177
6.1Android中的聲音 177
6.1.1Sound類 177
6.1.2調整Object3d類 178
6.2音效示例 180
6.3HUD概述 184
6.3.1HUD 184
6.3.2創建BillBoard類 185
6.3.3創建BillBoardFont類 188
6.3.4調整Texture類 189
6.3.5創建BillBoardCharacterSet類 189
6.3.6創建HUDItem類 194
6.3.7創建HUD類 196
6.3.8調整Object3d類 202
6.4HUD創建示例 203
6.5數據持久化 212
6.5.1調整Orientation類 213
6.5.2調整Physics類 214
6.5.3調整Object3d類 214
6.6保存持久化數據 214
6.6.1調整MyGLRenderer類 214
6.6.2調整MyGLSurfaceView類 216
6.6.3調整MainActivity類 217
6.7本章小結 217
第7章創建玩家角色 219
7.1創建玩家圖形 219
7.1.1創建Mesh類 219
7.1.2調整Object3d類 220
7.1.3調整使用Object3d類的其他類 222
7.1.4創建Pyramid類 223
7.1.5創建PowerPyramid類 224
7.2創建玩家的視點和輸入 225
7.2.1調整MyGLRenderer類 226
7.2.2調整MyGLSurfaceView類 228
7.3創建玩家的武器和彈藥 229
7.4創建爆炸效果 239
7.4.1創建PolyParticleEx類 239
7.4.2創建SphericalPolygonExplosion類 244
7.4.3調整Object3d類 252
7.5生成游戲對象的統計數據 253
7.5.1創建Stats類 253
7.5.2調整Object3d類 255
7.6射擊目標 256
7.6.1創建玩家的武器系統 259
7.6.2處理碰撞問題 263
7.6.3調整onDrawFrame()函數 265
7.7本章小結 268
第8章創建敵方角色 269
8.1創建Arena對象 269
8.2人工智能概述 273
8.3創建坦克敵方角色 275
8.3.1創建坦克圖形 275
8.3.2創建坦克狀態 276
8.3.3創建車輛命令 278
8.3.4創建坦克狀態并處理命令 284
8.3.5創建車輛的轉向類 286
8.3.6創建坦克的巡邏/攻擊狀態 288
8.3.7創建坦克對象的有限狀態機 299
8.3.7創建坦克對象的Driver類 303
8.3.9調整Physics類 307
8.3.10調整Object3d類 309
8.3.11創建坦克對象 310
8.4ArenaObject3d類和Tank類 318
8.5本章小結 326
第9章用戶界面 327
9.1創建主菜單系統 327
9.1.1MenuItem類 327
9.1.2MainMenu類 329
9.2創建高分榜 332
9.2.1HighScoreEntry類 332
9.2.2HighScoreTable類 334
9.3創建高分輸入系統 342
9.4用戶界面示例 350
9.5本章小結 360
第10章最終的DroneGrid游戲 361
10.1組織和控制敵方角色分組 361
10.1.1ArenaObjectSet類 361
10.1.2TankFleet類 372
10.2GamePlayController類 376
10.3保存和加載游戲狀態 385
10.3.1調整MainActivity類 386
10.3.2調整MyGLRenderer類 386
10.4根據游戲結束狀態添加游戲 388
10.5DroneGrid游戲示例 392
10.6本章小結 404
第11章Android原生開發工具包(NDK) 405
11.1NDK概述 405
11.2NDK系統需求條件 405
11.3Android平臺兼容性 406
11.4安裝AndroidNDK 406
11.5AndroidNDK的使用方式 407
11.6Java本地接口概述 407
11.6.1Java接口指針 408
11.6.2加載和鏈接本地C/C++方法 408
11.6.3命名的本地函數 409
11.6.4本地函數參數 409
11.6.5C/C++本地函數格式 410
11.6.6本地類型 410
11.6.7引用類型 410
11.6.8JNI簽名類型 411
11.6.9調用Java中的本地代碼并訪問本地代碼中的Java方法 412
11.6.10JNI函數 413
11.7AndroidJNIMakefile 414
11.8基于JNI和本地代碼的“HelloWorld”示例 415
11.9向DroneGrid游戲中添加本地函數 419
11.9.1計算本地代碼中的重力 419
11.9.2從本地代碼中旋轉對象 420
11.9.3從本地代碼中計算碰撞的反作用力 424
11.10本章小結 428
第12章游戲的發布和市場化運作 429
12.1創建最終的發布文件 429
12.2測試.apk發布文件 432
12.3Android市場和策略列表 435
12.3.1GooglePlay 435
12.3.2AmazonAppstore 435
12.3.3SamsungAppsStore 436
12.3.4Aptoide 436
12.3.5Appitalism 436
12.3.6GetJar 437
12.3.7SlideMe 437
12.3.8Soc.IoMall 437
12.3.9用戶自己的網站 437
12.4Android廣告網絡列表 438
12.4.1AppFlood 438
12.4.2Appwiz 439
12.4.3LeadBolt 439
12.4.4AppBucks 440
12.4.5AdMob 441
12.4.6StartApp 442
12.4.7其他廣告網絡和營銷公司 444
12.5Android游戲評論網站 447
12.6其他有用的網站 452
12.7本章小結 452
序: