買這商品的人也買了...
-
$149$134 -
$480$379 -
$650$507 -
$490$382 -
$301移動 App 性能評測與優化
-
$580$458 -
$403深入剖析 Android 新特性
-
$454Android 應用開發進階
-
$505jQuery 炫酷應用實例集錦
-
$454高級 Android 開發強化實戰
-
$505Android 自定義控件開發入門與實戰
-
$199Android 移動開發詳解 — 從基礎入門到樂享開發
-
$505Android 應用案例開發大全, 4/e
-
$294$279 -
$834$792 -
$454Android工程化最佳實踐
-
$509Android 炫酷應用 300例 (實戰篇)
-
$780$616 -
$560$476 -
$594$564 -
$620$484 -
$550$429 -
$474$450 -
$650$507 -
$600$468
相關主題
商品描述
內 容 提 要
本書內容分為兩大部分:首先講解了Android游戲開發核心技術,主要包括Android游戲開發的前臺渲染、交互式通信、數據存儲和傳感器、網絡編程、游戲背後的數學與物理、游戲地圖開發、游戲開發小秘技、JBox2D物理引擎、3D應用開發基礎等;接下來介紹Android游戲開發實戰綜合案例,包括多種流行的游戲類型,如滾屏動作類游戲—《坦克大戰》、網絡游戲—《風火三國》、益智類游戲—《Wo!Water!》、3D塔防類游戲—《三國塔防》、策略游戲—《大富翁》、休閑類游戲—《切切樂》、休閑類游戲—《3D冰球》等。
本書適合Android初學者、游戲開發人員閱讀,也可作為高校相關專業的學慣用書或培訓學校的教材。
作者簡介
吳亞峰,畢業於北京郵電大學,後留學澳大利亞臥龍崗大學取得碩士學位。
1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。
主要的研究方向為OpenGL ES、WebGL、Vulkan及手機遊戲。
同時為手機遊戲、移動3D應用獨立軟件開發工程師,並兼任百納科技Java培訓中心首xi培訓師。
近十年來為數十家企業培養了上千名軟件開發人員,
曾編寫過《Cocos2d-X案例開發大全》《Cocos2d-X 3.0遊戲開發實戰詳解》《Cocos2d-X 3.x 遊戲案例開發大全》
《OpenGL ES 3.x遊戲開發(上下卷)》《H5和WebGL 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 Studio和Android SDK的下載4
1.3.2 Android Studio和Android SDK的安裝4
1.3.3開發第一個Android程序8
1.3.4 Android程序的監控與調試13
1.4已有Android Studio項目的導入與
運行14
1.5本章小結16
第2章Android遊戲開發中的前台渲染17
2.1創建Android用戶界面17
2.1.1佈局管理17
2.1.2常用控件及其事件處理22
2.2圖形與動畫在Android中的實現24
2.2.1簡單圖形的繪製24
2.2.2貼圖的藝術25
2.2.3剪裁功能27
2.2.4自定義動畫的播放30
2.3 Android平台下的多媒體開發32
2.3.1音頻的播放32
2.3.2視頻的播放35
2.3.3 Camera圖像採集37
2.4本章小結39
第3章Android遊戲開發中的交互式
通信40
3.1 Android應用程序的基本組件40
3.1.1 Activity組件40
3.1.2 Service組件42
3.1.3 Broadcast Receiver組件42
3.1.4 Content Provider組件43
3.1.5 AndroidManifest.xml文件
簡介44
3.2應用程序的內部通信46
3.2.1消息的處理者—Handler類簡介47
3.2.2使用Handler進行內部通信48
3.3應用程序組件之間的通信49
3.3.1 Intent類簡介50
3.3.2應用程序組件—IntentFilter類簡介51
3.3.3示例1:與Android系統組件通信52
3.3.4示例2:應用程序組件間通信示例Activity部分的開發53
3.3.5示例3:應用程序組件間通信示例Service部分的開發55
3.4本章小結57
第4章Android遊戲開發中的數據存儲和傳感器58
4.1在Android平台上實現數據存儲58
4.1.1私有文件夾文件的寫入與
讀取58
4.1.2讀取Resources和Assets中的文件61
4.1.3輕量級數據庫SQLite簡介63
4.1.4 SQLite的使用示例65
4.1.5數據共享者—Content Provider的使用68
4.1.6簡單的數據存儲—Preferences的使用71
4.2 Android平台下傳感器應用的開發73
4.2.1基本開發步驟74
4.2.2光傳感器76
4.2.3溫度傳感器77
4.2.4接近傳感器79
4.2.5加速度傳感器80
4.2.6磁場傳感器82
4.2.7姿態傳感器84
4.2.8陀螺儀傳感器87
4.2.9加速度傳感器綜合案例88
4.2.10傳感器的坐標軸問題91
4.3本章小結94
第5章Android遊戲開發中的網絡編程95
5.1基於Socket套接字的網絡編程95
5.2基於HTTP的網絡編程98
5.2.1通過URL獲取網絡資源98
5.2.2在Android中解析XML 100
5.3藍牙通信101
5.3.1基礎知識101
5.3.2簡單的案例101
5.4簡單的多用戶並發網絡遊戲編程
架構112
5.4.1基本知識112
5.4.2雙人聯網操控飛機案例114
5.5本章小結123
第6章不一樣的遊戲,一樣的精彩應用125
6.1射擊類游戲125
6.1.1遊戲玩法125
6.1.2視覺效果125
6.1.3遊戲內容設計126
6.2競速類游戲127
6.2.1遊戲玩法127
6.2.2視覺效果127
6.2.3遊戲內容設計127
6.3益智類游戲128
6.3.1遊戲玩法128
6.3.2視覺效果129
6.3.3遊戲內容設計129
6.4角色扮演遊戲129
6.4.1遊戲玩法129
6.4.2視覺效果130
6.4.3遊戲內容設計131
6.5闖關動作類游戲131
6.5.1遊戲玩法132
6.5.2視覺效果132
6.5.3遊戲內容設計132
6.6冒險遊戲132
6.6.1遊戲玩法133
6.6.2視覺效果133
6.6.3遊戲內容設計134
6.7策略遊戲134
6.7.1遊戲玩法134
6.7.2視覺效果135
6.7.3遊戲內容設計135
6.8養成類游戲135
6.8.1遊戲玩法135
6.8.2視覺效果136
6.8.3遊戲內容設計136
6.9經營類游戲137
6.9.1遊戲玩法137
6.9 .2視覺效果137
6.9.3遊戲內容設計138
6.10體育類游戲138
6.10.1遊戲玩法138
6.10.2視覺效果139
6.10.3遊戲內容設計139
6.11本章小結139
第7章遊戲背後的數學與物理140
7.1編程中經常用到的數理知識140
7.1.1數學方面140
7.1.2物理方面142
7.2碰撞檢測技術143
7.2.1碰撞檢測技術基礎143
7.2.2遊戲中實體對象之間的碰撞檢測144
7.2. 3遊戲實體對象與環境之間的碰撞檢測146
7.2.4穿透效應問題147
7.3必知必會的計算幾何148
7.3.1 GeoLib庫中常用基礎類的
介紹148
7.3.2無孔多邊形的相關知識156
7.3.3有孔多邊形的相關知識159
7.3.4有孔多邊形案例162
7.3.5顯示凸殼案例166
7.3.6多邊形切分案例169
7.3.7顯示包圍框以及多邊形的
矩形組合案例173
7.3.8旋轉與凸子區域案例175
7.3.9平滑與計算最短距離案例177
7.3.10多邊形縮放與不重疊案例178
7.3.11求多邊形對稱案例180
7.3.12多邊形集合運算案例181
7.4本章小結183
第8章遊戲地圖必知必會184
8.1兩種不同單元形狀的地圖184
8.1.1正方形單元地圖184
8.1.2正方形單元地圖案例186
8.1.3正六邊形單元地圖187
8.1.4正六邊形單元地圖案例189
8.1.5正方形單元和正六邊形單元地圖的比較191
8.2正六邊形單元地圖的路徑搜索191
8.2.1路徑搜索示例基本框架的
搭建191
8.2.2深度優先路徑搜索DFS 197
8.2.3廣度優先路徑搜索199
8.2.4路徑搜索算法—Dijkstra
算法201
8.2.5用A*算法優化算法204
8.3正六邊形單元地圖的網格定位206
8.3.1基本知識206
8.3.2簡單的案例206
8.4地圖編輯器與關卡設計208
8.4.1關卡地圖的重要性208
8.4.2圖片分割界面的實現210
8.4.3地圖設計界面的實現214
8.5多分辨率屏幕的自適應219
8.5.1非等比例縮放219
8.5.2非等比例縮放案例220
8.5.3等比例縮放並剪裁223
8.5.4等比例縮放並剪裁案例224
8.5.5等比例縮放並留白225
8.5.6等比例縮放並留白案例226
8.6本章小結227
第9章遊戲開發小秘技228
9.1有限狀態機228
9.1.1什麼是有限狀態機228
9.1.2有限狀態機的簡單實現229
9.1.3有限狀態機的OO實現233
9.2遊戲中的模糊邏輯235
9.2.1模糊的才是真實的235
9.2.2如何在Android中將游戲
模糊化236
9.3遊戲的基本優化技巧238
9.3.1代碼上的小藝術238
9.3 .2 Android中的查找表技術239
9.3.3遊戲的感覺和性能問題241
9.4多點觸控技術的使用242
9.4.1基本知識242
9.4.2一個簡單的案例243
9.5本章小結247
第10章JBox2D物理引擎248
10.1物理引擎很重要248
10.1.1什麼是物理引擎248
10.1.2常見的物理引擎248
10.2 2D的王者JBox2D 251
10.2.1基本的物理學概念251
10.2.2 JBox2D中常用類的介紹252
10.3木塊金字塔被撞擊案例262
10.3.1案例運行效果262
10.3.2案例的基本框架結構263
10.3.3常量類—Constant 263
10.3. 4物體類—MyBody 264
10.3.5圓形物體類—
MyCircleColor 264
10.3.6矩形物體類—
MyRectColor 265
10.3.7生成物理形狀工具類—
Box2DUtil 266
10.3.8主控制類—
MyBox2dActivity 267
10.3.9顯示界面類—
GameView 269
10.3.10繪製線程類—
DrawThread 270
10.4簡易打磚塊案例271
10.4.1案例運行效果271
10.4.2需要了解的類271
10.4.3碰撞監聽器—
MyContactListener類274
10.4.4碰撞檢測工具類—
BodySearchUtil 275
10.4.5繪製線程類—
DrawThread 275
10.5物體無碰撞下落案例276
10.5.1案例運行效果276
10.5.2碰撞過濾器—
ContactFilter類277
10.5.3碰撞過濾類的開發277
10.5.4多邊形剛體類—
MyPolygonColor 278
10.5.5生成剛體性狀的工具類—
Box2DUtil 279
10.5.6主控制類—
MyBox2dActivity 279
10.5.7顯示界麵類—
GameView 281
10.6關節—Joint 282
10.6.1關節定義—JointDef類282
10.6.2距離關節描述—
DistanceJointDef類282
10.6.3距離關節案例—
小球下擺283
10.6.4旋轉關節描述—
RevoluteJointDef類286
10.6.5旋轉關節案例—轉動的
風扇與蹺蹺板287
10.6.6鼠標關節描述—
MouseJointDef類290
10.6.7鼠標關節案例—
物體下落290
10.6.8移動關節描述—
PrismaticJointDef類294
10.6.9移動關節案例—定向
移動的木塊295
10.6.10齒輪關節描述—
GearJointDef類297
10.6.11齒輪關節案例—轉動的
齒輪298
10.6.12焊接關節描述—
WeldJointDef類301
10.6.13焊接關節案例—
有彈性的木板301
10.6.14滑輪關節描述—
PulleyJointDef類304
10.6.15滑輪關節案例—移動的
木塊304
10.6.16車輪關節描述—
WheelJointDef類306
10.6.17車輪關節案例—
運動的小車307
10.6.18繩索關節描述—
RopeJointDef類309
10.6.19繩索關節案例—掉落的
糖果309
10.7模擬傳送帶案例317
10.7.1案例運行效果317
10.7.2碰撞監聽器—
MyContactListener類318
10.7.3主控制類—
MyBox2DActivity 320
10.7.4線程類—DrawThread 321
10.8光線投射案例322
10.8.1案例運行效果322
10.8.2 RayCastInput類與RayCastOutput類322
10.8. 3光線檢測類—
MyRayCast 323
10.8.4主控制類—
MyBox2dActivity 324
10.8.5顯示界麵類—
GameView 325
10.9模擬爆炸案例327
10.9.1案例運行效果327
10.9.2光線投射回調接口—
RayCastCallback 327
10.9.3自身的光線投射回調類—
RayCastClosestCallback 328
10.9.4主控制類—
MyBox2dActivity 328
10.10流體模擬329
10.10.1流體模擬的相關知識330
10.10.2波浪製造機案例333
10.10.3軟體案例336
10.10.4固體案例337
10.10.5粉塵案例339
10.11本章小結340
第11章3D應用開發基礎341
11.1 OpenGL和OpenGL ES簡介341
11.2 3D基本知識343
11.3 OpenGL ES 2.0 344
11.3.1 OpenGL ES 2.0的渲染
管線345
11.3.2不同的繪製方式348
11.3.3初識OpenGL ES 2.0應用
程序350
11.3.4著色語言355
11.3.5正交投影357
11.3.6透視投影361
11.3.7光照的3種組成元素364
11.3.8定向光與定位光366
11.3.9點法向量和麵法向量371
11.3.10紋理映射372
11.4利用OpenGL ES 2.0繪製真實的
流體377
11.4.1流體繪製的策略377
11.4.2一個簡單的案例379
11.4.3流體計算流水線回顧388
11.5 OpenGL ES 3.x 389
11.5.1程序升級的要點390
11.5.2一個簡單的案例390
11.6用OpenGL ES實現2D繪製392
11.7本章小結394
第12章滾屏動作類游戲—
《坦克大戰》 395
12.1遊戲的背景及功能概述395
12.1.1背景概述395
12.1.2功能簡介395
12.2遊戲的策劃及準備工作397
12.2.1遊戲的策劃397
12.2.2安卓平台下游戲開發的準備
工作398
12.3遊戲的架構401
12.3.1程序結構的簡要介紹401
12.3.2服務器端的簡要介紹401
12.4服務器端的開發402
12.4.1數據類的開發402
12.4.2服務線程的開發403
12.4.3碰撞檢測類的開發405
12.4.4動作執行類的開發407
12.4.5狀態更新類的開發410
12.5 Android端的開發411
12.5.1數據類的開發411
12.5.2 TankActivity類的開發413
12.5.3 MySurfaceView類的開發415
12.5.4菜單類的開發419
12.5.5雜項類的開發421
12.5.6物體繪製類的開發425
12.6輔助工具類426
12.6.1搖桿工具類的開發426
12.6.2數據接收工具類的開發428
12.6.3數據發送工具類的開發429
12.7地圖設計器431
12.8遊戲的優化及改進432
第13章網絡遊戲開發—《風火三國》網絡
對戰遊戲433
13.1遊戲背景及功能概述433
13.1.1背景概述433
13.1.2功能簡介434
13.2遊戲策劃及準備工作436
13.2.1遊戲的策劃436
13.2.2 Android平台下游戲開發的
準備工作436
13.3遊戲的框架437
13.3.1各個類的簡要介紹437
13.3.2遊戲的框架簡介438
13.4共有類SanGuoActivity的實現439
13.5輔助界面相關類的實現444
13.5.1歡迎界麵類444
13.5.2主菜單界麵類446
13.6遊戲界面相關類的實現448
13.6.1遊戲界面框架449
13.6.2界面刷幀線程類457
13.6.3牌圖分割類457
13.6.4牌的控制類459
13.6.5出牌規則類460
13.7客戶端代理線程461
13.8服務器相關類464
13.8.1服務器主類464
13.8.2服務器代理線程466
13.8.3發牌類473
13.8.4初始化血點類474
13.8.5判斷裝備牌類474
13.8.6管理玩家距離類475
13.9本章小結476
第14章益智類游戲—《Wo !Water!》 477
14.1遊戲背景和功能概述477
14.1.1背景概述477
14.1.2功能介紹478
14.2遊戲的策劃及準備工作480
14.2.1遊戲的策劃480
14.2.2安卓平台下游戲開發的準備
工作481
14.3遊戲的架構483
14.3.1各個類的簡要介紹484
14.3.2遊戲框架簡介486
14.4常量及公共類488
14.4.1遊戲主控類MainActivity 488
14.4.2遊戲常量類Constant 490
14.4.3遊戲常量類
SourceConstant 491
14.5界面相關類494
14.5.1遊戲界面管理類ViewManager 494
14.5.2主選關界麵類BNMainSelectView 498
14.5.3遊戲界麵類BNGameView 502
14.5.4紋理矩形繪製類RectForDraw 512
14.5.5屏幕自適應相關類515
14.6線程相關類517
14.6.1物理刷幀線程類PhysicsThread 517
14.6.2數據計算線程類
SaveThread 519
14.6.3火焰線程類
FireUpdateThread 520
14.7水粒子的相關類521
14.7.1水粒子物理封裝類
WaterObject 521
14.7.2水紋理生成類
WaterForDraw 522
14.7.3計算類PhyCaulate 525
14.8遊戲中著色器的開發528
14.8.1紋理的著色器528
14.8 .2水紋理的著色器529
14.8.3加載界面閃屏紋理的
著色器530
14.8.4煙火的紋理著色器531
14.9遊戲地圖數據文件介紹531
14.10遊戲的優化及改進533
第15章3D塔防類遊戲—
《三國塔防》 534
15.1背景和功能概述534
15.1.1遊戲背景概述534
15.1.2遊戲功能簡介534
15.2遊戲的策劃及準備工作538
15.2.1遊戲的策劃538
15.2.2手機平台下游戲的準備
工作538
15.3遊戲的架構542
15.3.1各個類的簡要介紹542
15.3.2遊戲框架簡介545
15.4公共類TaFang_Activity 546
15.5界面顯示類548
15.5 .1顯示界麵類
GlSurfaceView 549
15.5.2界面抽象父類TFAbstractView 549
15.5.3加載資源界麵類
LoadView 550
15.5.4選關設置界麵類
SelectView 551
15.5.5武器界麵類WeaponView 553
15.6場景及相關類553
15.6 .1總場景管理類AllSence 554
15.6.2關卡場景類SenceLevel1 555
15.6.3水麵類Water 556
15.6.4場景數據管理類
SenceData 556
15.7輔助類557
15.7.1按鈕管理類MenuButton 557
15.7.2單個怪物類
SingleMonster1 558
15.7.3單個砲彈類SingleBullet1 561
15.7.4標誌板管理類
BoardGroup 563
15.7.5砲台管理類PaoGroup 564
15.8工具線程類565
15.8.1 obj模型加載類LoadUtil 565
15.8.2交點坐標計算類IntersectantUtil 567
15.8.3紋理管理器類TextureManager 567
15.8 .4水流動線程類
WaterThread 568
15.8.5怪物砲彈控制線程類
MonPaoThread 569
15.9粒子系統與著色器的開發569
15.9.1粒子系統的開發570
15.9.2著色器的開發571
15.10遊戲的優化及改進573
15.11本章小結574
第16章策略遊戲—《大富翁》 575
16.1遊戲的背景和功能概述575
16.1.1背景概述575
16.1.2功能簡介575
16.2遊戲的策劃及準備工作578
16.2.1遊戲的策劃578
16.2.2安卓平台下游戲開發的準備
工作579
16.3遊戲的架構585
16.3.1程序結構的簡要介紹585
16.3.2遊戲各個類的簡要介紹585
16.4地圖設計器的開發587
16.4.1地圖設計器的開發設計
思路587
16.4.2地圖設計器的框架介紹588
16.4.3底層地圖設計器的開發
步驟588
16.5 Activity和遊戲工具類的開發592
16.5. 1主控制類—ZActivity的開發592
16.5.2常量工具類ConstantUtil的
開發594
16.5.3日期管理類DateUtil的
開發595
16.5.4圖片管理類PicManager的
開發596
16.6數據存取模塊的開發597
16.6.1地圖層信息的封裝類597
16.6.2數據存取相關類的
介紹600
16.7人物角色模塊的開發604
16.7.1 Figure類的代碼框架604
16.7.2 Dice類的代碼框架606
16.7.3 FigureGoThread類的
代碼框架607
16.8表示層界面模塊的開發612
16.8.1遊戲界面GameView的框架
介紹612
16.8.2遊戲界面繪製方法onDraw的
介紹614
16.8.3遊戲界面屏幕監聽方法onTouch的介紹618
16.8.4後台線程GameViewThread的
開發619
16.9地圖中可遇實體模塊的開發620
16.9.1繪製類—MyDrawable的
開發620
16.9.2抽像類—
MyMeetableDrawable的
開發622
16.9.3土地類—
GroundDrawable類623
16.9.4可遇實體對象的調用
流程624
16.10管理面板模塊的開發625
16.11遊戲的優化及改進627
第17章休閒類游戲—《切切樂》 629
17.1遊戲的背景和功能概述629
17.1.1背景描述629
17.1.2功能介紹630
17.2遊戲的策劃及準備工作633
17.2.1遊戲的策劃633
17.2.2手機平台下游戲的準備
工作633
17.3遊戲的架構635
17.3. 1各個類的簡要介紹635
17.3.2遊戲框架簡介637
17.4顯示界麵類638
17.5輔助工具類644
17.5.1工具類645
17.5.2輔助類648
17.6繪製相關類658
17.6.1 BNObject繪製類的
開發658
17.6.2 BNPolyObject繪製類的
開發662
17.7雪花粒子系統的開發663
17.7.1基本原理664
17.7.2開發步驟664
17.8本遊戲中的著色器666
17.9遊戲的優化及改進668
17.10本章小結669
第18章休閒類游戲—《3D冰球》 670
18.1遊戲的背景和功能概述670
18.1.1背景描述670
18.1.2功能介紹671
18.2遊戲的策劃及準備工作674
18.2.1遊戲的策劃674
18.2.2手機平台下游戲的準備
工作675
18.3遊戲的架構677
18.3.1各個類的簡要介紹677
18.3.2遊戲框架簡介680
18.4顯示界麵類681
18.4.1顯示界面MySurfaceView
類681
18.4.2加載界面LoadingView類682
18.4.3主界面MainView類683
18.4.4轉場界面TransitionView
類685
18.4.5遊戲界面GameView類686
18.5輔助工具類689
18.5.1工具類689
18.5.2輔助類693
18.5.3線程類699
18.6繪製相關類702
18.6.1 3D模型繪製類的開發702
18.6. 2 BN3DObject繪製類的開發704
18.7粒子系統的開發705
18.7.1基本原理706
18.7.2開發步驟706
18.8本遊戲中的著色器708
18.9遊戲的優化及改進710
18.10本章小結710