android游戲實例
1. Android游戲開發中,怎麼把這類圖片的各個人物切割成單獨的圖片,然後把人物動起來,求完整實例,
可以用Animation來實現
http://www.360doc.com/content/13/0102/22/6541311_257754535.shtml
這里有很詳細的講解
2. Android游戲開發大全的目錄
《android游戲開發大全》
第一篇android游戲開發核心技術
第1章android平台簡介2
1.1android的來龍去脈2
1.2掀起android的蓋頭來2
1.2.1選擇android的理由2
1.2.2android的應用程序框架3
1.3android開發環境的搭建6
1.3.1sdk的下載及安裝6
1.3.2eclipse集成開發環境的搭建6
1.3.3虛擬設備的創建與模擬器的運行9
1.3.4第一個android程序11
1.3.5android程序的監控與調試14
1.4小結15
第2章android游戲開發之前台渲染16
2.1創建android用戶界面16
2.1.1布局管理16
2.1.2常用控制項及其事件處理22
2.2圖形與動畫在android中的實現24
2.2.1簡單圖形的繪制24
.2.2.2貼圖的藝術26
2.2.3自定義動畫的播放27
2.3android平台下的多媒體開發30
2.3.1音頻的播放30
2.3.2視頻的播放33
2.3.3camera圖像採集36
2.4小結38
第3章android游戲開發之互動式通信39
3.1android應用程序的基本組件39
3.1.1activity組件39
3.1.2service組件41
3.1.3broadcast receiver組件42
3.1.4content provider組件43
3.1.5androidmanifest.xml文件簡介43
3.2應用程序的內部通信47
3.2.1消息的處理者——handler類簡介47
3.2.2使用handler進行內部通信48
3.3應用程序組件之間的通信50
3.3.1intent類簡介50
3.3.2應用程序組件——intentfilter類簡介52
3.3.3示例1:與android系統組件通信53
3.3.4示例2:應用程序組件間通信示例activity部分的開發54
3.3.5示例3:應用程序組件間通信示例service部分的開發56
3.4小結59
第4章android游戲開發之數據存儲和感測器60
4.1在android平台上實現數據存儲60
4.1.1私有文件夾文件的寫入與讀取60
4.1.2讀取resources和assets中的文件63
4.1.3輕量級資料庫sqlite簡介65
4.1.4sqlite的使用示例69
4.1.5數據共享者——content provider的使用72
4.1.6簡單的數據存儲——preferences的使用76
4.2android平台下感測器應用的開發78
4.2.1感測器應用開發流程78
4.2.2常用感測器簡介79
4.2.3感測器應用開發示例81
4.2.4使用sensorsimulator模擬感測器變化83
4.2.5使用新版本的api開發感測器應用86
4.3小結88
第5章android游戲開發之網路編程89
5.1基於socket套接字的網路編程89
5.2基於http協議的網路編程93
5.2.1通過url獲取網路資源93
5.2.2在android中解析xml95
5.3android平台下的google map95
5.3.1定位類genpoint與顯示地圖類mapview的搭配使用95
5.3.2位置監聽器——locationlistener的使用99
5.4其他網路通信方式101
5.4.1使用wifi進行開發101
5.4.2藉助於藍牙(bluetooth)技術進行開發102
5.5小結102
第6章不一樣的游戲,一樣的精彩103
6.1射擊類游戲103
6.1.1游戲玩法103
6.1.2視覺效果104
6.1.3游戲內容設計104
6.2競速類游戲104
6.2.1游戲玩法105
6.2.2視覺效果105
6.2.3游戲內容設計106
6.3益智類游戲106
6.3.1游戲玩法106
6.3.2視覺效果107
6.3.3游戲內容設計107
6.4角色扮演游戲107
6.4.1游戲玩法108
6.4.2視覺效果108
6.4.3游戲內容設計109
6.5闖關動作類游戲109
6.5.1游戲玩法109
6.5.2視覺效果110
6.5.3游戲內容設計110
6.6冒險游戲110
6.6.1游戲玩法110
6.6.2視覺效果111
6.6.3游戲內容設計112
6.7策略游戲112
6.7.1游戲玩法112
6.7.2視覺效果113
6.7.3游戲內容設計113
6.8養成類游戲113
6.8.1游戲玩法114
6.8.2視覺效果114
6.8.3游戲內容設計114
6.9經營類游戲115
6.9.1游戲玩法115
6.9.2視覺效果115
6.9.3游戲內容設計116
6.10體育類游戲116
6.10.1游戲玩法116
6.10.2視覺效果117
6.10.3游戲內容設計117
6.11小結117
第7章游戲背後的數學與物理118
7.1編程中經常用到的數理知識118
7.1.1數學方面118
7.1.2物理方面120
7.2物理小球在游戲中的應用121
7.2.1開發運動體movable類的代碼121
7.2.2開發物理引擎ballthread類的代碼123
7.2.3視圖類——開發ballview類的代碼126
7.2.4繪制線程——開發drawthread類的代碼129
7.2.5開發activity部分的代碼131
7.3粒子系統132
7.3.1粒子對象類——開發粒子對象particle類和粒子集合particleset類132
7.3.2開發焰火粒子系統的物理引擎particlethread類的代碼134
7.3.3視圖類——開發視圖類particleview及其相關類135
7.3.4開發程序activity部分的代碼137
7.3.5將焰火粒子系統改為瀑布粒子系統138
7.4碰撞檢測技術139
7.4.1碰撞檢測技術基礎139
7.4.2游戲中實體對象之間的碰撞檢測140
7.4.3游戲實體對象與環境之間的碰撞檢測143
7.5小結144
第8章游戲中的人工智慧145
8.1讓怪物聰明起來——android中的路徑搜索145
8.1.1路徑搜索示例基本框架的搭建145
8.1.2路徑搜索示例的控制面板實現147
8.1.3路徑搜索示例gameview的實現151
8.1.4深度優先路徑搜索dfs154
8.1.5廣度優先路徑搜索bfs156
8.1.6路徑搜索演算法——dijkstra159
8.1.7用a*演算法優化搜索162
8.2有限狀態機164
8.2.1何為有限狀態機164
8.2.2有限狀態機的簡單實現165
8.2.3有限狀態機的oo實現170
8.3小結172
第9章游戲開發小秘技173
9.1地圖編輯器與關卡設計173
9.1.1關卡地圖的重要性173
9.1.2圖片分割界面的實現175
9.1.3地圖設計界面的實現179
9.2游戲中的模糊邏輯185
9.2.1模糊的才是真實的185
9.2.2如何在android中將游戲模糊化186
9.3游戲的基本優化技巧188
9.3.1代碼上的小藝術188
9.3.2android中的查找表技術190
9.3.3游戲的感覺和性能問題192
9.4小結193
第10章游戲的心臟——物理引擎194
10.1物理引擎很重要194
10.1.1什麼是物理引擎194
10.1.2常見的物理引擎194
10.22d的王者jbox2d197
10.2.1基本的物理學概念197
10.2.2jbox2d中常用類的介紹199
10.3球體撞擊木塊金字塔案例203
10.3.1案例運行效果204
10.3.2案例的基本框架結構204
10.3.3常量類——constant205
10.3.4抽象類——mybody206
10.3.5圓形剛體類——mycirclecolor206
10.3.6生成剛體形狀的工具類——box2til207
10.3.7顏色工具類——colorutil208
10.3.8主控制類——mybox2dactivity209
10.3.9顯示界面類——gameview211
10.3.10繪制線程類——drawthread212
10.4簡易打磚塊案例213
10.4.1一般碰撞版213
10.4.2碰撞後消失版215
10.5旋轉關節蹺蹺板案例220
10.5.1旋轉關節介紹220
10.5.2多邊形剛體類mypolygoncolor的開發220
10.5.3生成剛體形狀的工具類——box2til221
10.5.4將場景中的剛體擺放到位222
10.5.5增加旋轉關節223
10.6旋轉關節鏈條擺案例225
10.6.1案例運行效果225
10.6.2案例的機械結構225
10.6.3主控制類——mybox2dactivity226
10.7組合機械結構案例227
10.7.1案例的運行效果227
10.7.2整體場景的機械結構228
10.7.3案例的基本框架結構229
10.7.4圓形剛體類——mycirclecolor229
10.7.5生成剛體形狀的工具類——box2til230
10.7.6主控制類——mybox2dactivity230
10.7.7游戲界面類——gameview232
10.7.8繪制線程類——drawthread233
10.8小結233
第11章opengl es應用開發基礎234
11.1opengl es概述及3d基本圖形繪制234
11.1.1opengl及opengl es簡介234
11.1.23d基本知識235
11.1.3使用索引的不同繪制方式236
11.1.4用索引法繪制三角形的案例238
11.1.5不使用索引數據繪制244
11.2正交投影和透視投影245
11.2.1正交投影246
11.2.2透視投影246
11.2.3兩種投影方式的原理及視口247
11.2.4兩種投影方式的案例248
11.3光照與材質250
11.3.1光照的3種組成元素250
11.3.2定向光與定位光252
11.3.3法向量253
11.3.4材質254
11.3.5兩種光源的案例255
11.4紋理及紋理映射257
11.4.1紋理映射基本原理257
11.4.2使用紋理映射的案例258
11.4.3幾種紋理拉伸方式261
11.4.4幾種紋理過濾方式262
11.5攝像機和霧特效263
11.5.1攝像機的設置264
11.5.2設置合理的視角264
11.5.3霧特效的開發266
11.6典型幾何體的開發267
11.6.1圓柱268
11.6.2圓錐273
11.6.3球276
11.6.4橢圓體278
11.6.5膠囊體281
11.6.6幾何體大集合284
11.7小結286
第二篇android游戲開發實戰綜合案例
第12章滾屏動作游戲——太空保衛戰288
12.1游戲的背景及功能概述288
12.1.1背景概述288
12.1.2功能簡介288
12.2游戲的策劃及准備工作290
12.2.1游戲的策劃290
12.2.2android平台下游戲的准備工作291
12.3游戲的架構292
12.3.1各個類的簡要介紹292
12.3.2游戲的框架簡介293
12.4輔助界面相關類的實現294
12.4.1主控制類——planeactivity的實現294
12.4.2歡迎界面welcomeview類296
12.4.3其他輔助界面的介紹300
12.5游戲界面的框架設計303
12.6游戲實體相關類的實現306
12.6.1飛機plane類的實現306
12.6.2敵方飛機enemyplane類的實現309
12.6.3子彈bullet類的實現311
12.6.4其他相關類的實現312
12.7游戲界面的完善314
12.7.1地圖類maps的實現314
12.7.2背景滾動類gameviewback groundthread的實現316
12.7.3物體移動線程movethread的實現317
12.7.4鍵盤監聽線程keythread的實現319
12.7.5圖片初始化方法initbitmap的實現320
12.7.6繪制方法ondraw的實現322
12.8游戲的優化與改進324
第13章棋牌游戲——中國象棋人機對弈325
13.1游戲的背景及功能概述325
13.1.1背景概述325
13.1.2功能介紹325
13.2游戲的策劃及准備工作327
13.2.1游戲的策劃327
13.2.2android平台下游戲的准備工作327
13.3游戲的架構329
13.3.1各個類簡要介紹329
13.3.2游戲框架簡介330
13.4主控制類——chess_djb_activity331
13.5輔助界面相關類334
13.6游戲界面相關類336
13.6.1游戲界面繪制類gameview336
13.6.2游戲界面常量類viewconstant353
13.7走法引擎相關類354
13.7.1常量類constant354
13.7.2工具類chess_loatil359
13.7.3走法引擎主類loatil360
13.7.4走法的排序規則類mycomparator371
13.7.5記錄走棋步驟類stackplaychess371
13.8游戲的優化與改進371
第14章物理感測器游戲——小球快跑(3d版)372
14.1游戲背景及功能概述372
14.1.1背景概述372
14.1.2功能簡介372
14.2游戲的策劃及准備工作374
14.2.1游戲的策劃374
14.2.2小球快跑游戲開發的准備工作375
14.3游戲的架構375
14.3.1游戲的總體架構376
14.3.2游戲的類結構376
14.4主控制類——driftball類的開發378
14.4.1driftball類的代碼框架378
14.4.2driftball類的主要成員方法的實現379
14.5游戲主菜單的開發381
14.5.1歡迎界面類——welcome view類的代碼框架381
14.5.2welcomeview類主要成員方法382
14.5.3welcomethread類的開發383
14.5.4菜單界面的用戶交互事件處理384
14.6游戲界面模塊的開發385
14.6.1游戲界面類——gameview的成員變數385
14.6.2gameview的成員方法簡介387
14.6.3游戲界面繪制線程——gamethread類的代碼框架387
14.6.4gamemenuthread類的開發388
14.6.5用戶交互事件處理389
14.7游戲中各個圖層的開發391
14.7.1地圖圖層的開發391
14.7.2其他圖層的開發與實現392
14.8游戲後台邏輯的開發395
14.8.1小球的運動控制395
14.8.2小球的碰撞檢測396
14.8.3大炮相關類cannon和missile的開發400
14.9感測器計算模塊的開發403
14.9.1手機姿態變化監聽器——balllistener類的開發403
14.9.2工具類——rotateutil類的代碼框架404
14.9.3工具類——rotateutil類的開發406
14.10游戲的優化與改進408
第15章塔防游戲——精靈塔防410
15.1游戲的背景及功能概述410
15.1.1背景概述410
15.1.2功能介紹410
15.2游戲的策劃及准備工作413
15.2.1游戲的策劃413
15.2.2android平台下游戲開發的准備工作414
15.3游戲的架構415
15.3.1各個類的簡要介紹416
15.3.2游戲框架簡介417
15.4主控制類tafanggameactivity和資料庫類dbutil418
15.4.1主控制類——tafanggame activity主要框架418
15.4.2主控制類——tafanggame activity中部分資料庫的實現421
15.4.3主控制類——tafanggame activity中對話框的開發423
15.4.4資料庫類dbutil的開發427
11.5界面相關類428
15.5.1歡迎界面welcomeview類的介紹428
15.5.2主界面mainmenusurfaceview類的介紹430
15.5.3音效設置界面musicsurfaceview類的介紹434
15.5.4游戲結束界面gameoverview類和幫助界面helpview類的介紹435
15.5.5積分榜界面highjifensurfaceview類的介紹435
15.6游戲界面gameview及相關類438
15.6.1精靈怪物target類439
15.6.2箭塔singlejianta類443
15.6.3箭shell類444
15.6.4精靈怪物的出擊現場——targetnumthread447
15.6.5箭塔控制發射線程——shellnumthread449
15.6.6游戲地圖矩陣模擬化451
15.6.7擺放箭塔守護城池452
15.6.8游戲中的2.5d效果455
15.6.9彈指間怪物灰飛煙滅——游戲水晶455
15.7游戲的優化和改進459
第16章策略游戲——回到戰國460
16.1游戲的背景及功能概述460
16.1.1背景概述460
16.1.2功能簡介460
16.2游戲的策劃及准備工作465
16.2.1游戲的策劃465
16.2.2android平台下游戲的准備工作465
16.3游戲的架構467
16.3.1游戲的模塊架構467
16.3.2游戲各個類的簡要介紹468
16.4地圖設計器的開發470
16.4.1底層地圖設計器的開發470
16.4.2上層地圖設計器的開發474
16.5activity和游戲工具類的開發475
16.5.1主控制類——hdzgactivity的介紹475
16.5.2公式封裝類——gameformula的介紹478
16.5.3常量工具類constantutil的介紹479
16.6數據存取模塊的開發481
16.6.1城池信息以及地圖層信息的封裝類481
16.6.2數據存取相關類的介紹485
16.7英雄角色模塊的開發488
16.7.1hero類的代碼框架488
16.7.2英雄運動線程——herogo thread類的開發491
16.7.3輔助線程——herobackdata thread類的開發493
16.8表示層界面模塊的開發493
16.8.1滾屏類——screenrollview類的開發494
16.8.2滾屏線程——screenroll thread的開發495
16.8.3游戲界面gameview的框架介紹496
16.8.4游戲界面繪制方法ondraw的介紹498
16.8.5游戲界面屏幕監聽方法ontouch的介紹500
16.8.6游戲界面後台線程game viewthread的介紹502
16.9管理面板模塊的開發503
16.9.1人物屬性面板類manpanel view的開發503
16.9.2城池管理面板類citymanage view的開發508
16.10地圖中可遇實體模塊的開發511
16.10.1繪制類——mydrawable的開發511
16.10.2抽象類——mymeetabledrawable的開發513
16.10.3森林類——forestdrawable的開發514
16.10.4可遇實體對象的調用流程516
16.11英雄技能模塊的開發518
16.11.1技能抽象類——skill的開發518
16.11.2伐木技能類——lumber skill的開發519
16.11.3隨心步技能類——suixinbuskill的開發520
16.12游戲提示模塊的開發520
16.12.1提示模塊抽象類——gamealert的開發520
16.12.2點擊確定按鈕顯示的信息類——plainalert的開發521
16.12.3顯示糧草危機信息類——foodalert的開發522
16.12.4輔助線程herobackdatathread中對foodalert的調用524
16.13游戲的優化與改進525
第17章體育游戲——2d迷你撞球527
17.12d撞球的背景及功能概述527
17.1.1背景概述527
17.1.2功能簡介527
17.2游戲的策劃及准備工作530
17.2.1游戲的策劃530
17.2.2android平台下游戲的准備工作530
17.3游戲的架構531
17.3.1游戲的框架簡介531
17.3.2各個類的簡要介紹532
17.4公共類的實現534
17.4.1主控制類——gameactivity的代碼框架534
17.4.2gameactivity類主要成員變數及方法的實現536
17.4.3常量類——constant的實現540
17.5輔助界面相關類的實現542
17.5.1歡迎動畫界面welcomeview類的實現542
17.5.2主菜單界面mainmenuview的代碼框架544
17.5.3主界面類——mainmenu view部分成員方法的實現545
17.5.4主界面動畫線程類view drawthread的實現548
17.5.5排行榜界面highscore view的代碼框架549
17.5.6highscoreview類的部分方法的實現550
17.6游戲界面相關類的實現552
17.6.1游戲界面gameview類的代碼框架552
17.6.2gameview類部分成員方法的實現553
17.6.3鍵盤監聽線程keythread類的實現557
17.6.4球運動的線程ballgothread類的實現558
17.7情景相關類的實現559
17.7.1球台table類的實現559
17.7.2撞球ball類的代碼框架561
17.7.3ball類部分成員方法的實現563
17.7.4球桿cue類的實現566
17.8自定義控制項及工具類的實現568
17.8.1球與球碰撞檢測的工具類collisionutil的實現568
17.8.2定時器timer類的實現571
17.8.3主菜單按鈕mainmenu button類的實現572
17.8.4獲取日期的工具dateutil 類的實現573
17.9游戲的優化與改進574
第18章益智游戲——3d版推箱子575
18.13d版推箱子的背景及功能概述575
18.1.1背景概述575
18.1.2功能簡介575
18.2游戲的策劃及准備工作579
18.2.1游戲的策劃579
18.2.2android平台下游戲開發的准備工作579
18.3游戲的架構580
18.3.1游戲的框架簡介580
18.3.2各個類的簡要介紹581
18.4公共類的實現582
18.4.1主控制類——myactivity的代碼框架582
18.4.2myactivity類成員方法的實現584
18.4.3常量類constant的實現585
18.5輔助界面相關類的實現587
18.5.1歡迎動畫界面welcomeview類的實現587
18.5.2主菜單界面mainview的實現589
18.6游戲界面相關類590
18.6.1游戲界面mysurfaceview類的設計與實現590
18.6.2鍵盤監聽線程keythread599
18.7自定義控制項及工具類600
18.7.1縮放圖片的方法picloatil600
18.7.2主菜單上的按鈕類mainmenubutton601
18.8情景相關類的實現602
18.8.1機器人類的代碼框架602
18.8.2機器人類成員方法的實現603
18.8.3機器人組類robotgroup類的實現605
18.8.4機器人組類成員方法的實現606
18.8.5圓面circle類的實現607
18.8.6矩形紋理類texturerect的實現609
18.8.7紋理矩形組類texturerect group的實現610
18.8.8牆類wall的實現611
18.8.9牆wall類成員方法的實現612
18.8.10箱子cube類的實現616
18.8.11箱子組cubegroup類的實現618
18.8.12箱子移動cubego類的代碼框架619
18.8.13箱子移動cubego類的成員方法的實現620
18.8.14地板類floor的實現621
18.9推箱子地圖設計器的開發623
18.10游戲的優化與改進624
第19章物理引擎游戲——盛怒的老鼠625
19.1游戲背景及功能概述625
19.1.1游戲開發背景625
19.1.2游戲功能概述625
19.2游戲策劃及准備工作628
19.2.1游戲策劃628
19.2.2游戲開發的准備工作628
19.3游戲的框架630
19.3.1游戲主要用到的技術631
19.3.2游戲各個類的介紹631
19.3.3游戲的基本框架633
19.4公共類634
19.4.1主控制類——mybox2dactivity634
19.4.2常量類constant635
19.5主界面的設計與實現644
19.5.1鼠頭和貓頭類taj644
19.5.2鼠頭和貓頭控制線程——tjthread646
19.5.3主界面mainmenuview646
19.5.4刷幀線程mainmenudrawthread653
19.6工具類654
19.6.1載入及縮放圖片的工具類picloatil654
19.6.2生成剛體工具類box2til655
19.6.3聲音工具類sountil656
19.7剛體相關類657
19.7.1多邊形類mypolygonimg657
19.7.2貓頭類bodycat659
19.7.3冰塊類bodyice660
19.7.4木條類bodywood661
19.7.5剛體類型枚舉類bodytype661
19.7.6剛體查詢工具類bodysearchutil662
19.8游戲界面相關類663
19.8.1皮筋類pijin663
19.8.2記錄分數類score664
19.8.3刷幀線程drawthread665
19.8.4游戲界面類gameview668
19.9游戲優化與改進673
3. 有哪些堪稱神作的安卓游戲
4. Android核心技術與實例詳解的前 言
Android是Google於2007年11月推出的一款開放的嵌入式操作系統平台,由於其完全開源的特性,Android正以空前的速度吸引著大批開發者的加入。為了幫助眾多的軟體開發人員盡快地掌握Android平台的相關知識,盡快地步入實際項目的開發中來,作者根據多年項目開發經驗編寫了此書。
本書既介紹了Android應用程序基本框架,也對Android平台的各種控制項進行了講解,還通過三個真實案例向讀者介紹了Android應用程序完整的開發步驟。通過本書讀者可以盡快地掌握在Android平台下進行開發的相關知識。
本書特點
1.內容飽滿,由淺入深
本書內容既包括Android平台下開發的基礎知識,也有項目編程的實用技巧,還提供了多個真實案例供讀者學習。本書在知識的層次上由淺入深,使讀者可以從Android的門外漢平穩、快速地步入Android開發的殿堂。
2.結構清晰、語言簡潔
本書中所有案例都是按照筆者的實際開發過程進行介紹的,同時也是按照真實項目的開發流程進行的,結構清晰,語言簡潔,便於實際練習。為了幫助讀者更好地理解相關知識點,全書穿插了很多實用技巧及溫馨提示。
3.實用超值的光碟
為了幫助讀者更好地掌握與實踐Android平台下應用程序的開發,本書附贈DVD光碟一張,其中包括案例的多媒體視頻、電子教案(PPT)和實例源代碼等。
4.實際商業案例
本書最後的三個案例都有實際商業價值,如果進行開發,價格要數萬元,筆者將其完整地展現給了讀者。
本書內容導讀
本書共分三篇,第一篇介紹了在Android平台下進行應用程序開發的基本知識,主要對Android應用程序框架及用戶界面的開發進行了介紹。章 名 主 要 內 容
第1章 Android開發起步 簡要說明Android平台的來歷及其特性,同時介紹了在Android平台下開發用戶界面的基本知識
第2章 Android應用程序的構成 對Android平台下的應用程序構成進行了介紹,同時還介紹了應用程序基本組件(如Activity等)的相關知識
第3章 Android布局管理器 初步介紹Android平台下用戶界面的開發,主要對布局管理器(如線性布局等的用法)進行了介紹
第4章 Android常用基本控制項 介紹了Android平台用戶界面中基本控制項(如按鈕和文本框等)的特性及其用法
第5章 Android常用高級控制項 繼續上一章的內容,對Android平台用戶界面中的高級控制項的相關知識和用法進行了介紹
第6章 菜單與對話框 介紹了Android平台選項菜單、上下文菜單和子菜單等的相關知識,同時還將各種對話框的用法進行了詳細的介紹
第7章 Android事件處理模型 對Android平台下用戶界面開發中常用到的事件處理模型進行了介紹
第二篇介紹如何在Android平台下進行高級應用程序的開發,包括游戲和基於OpenGL ES的3D應用程序的開發,以及與針對手機特性和網路服務程序的開發。
章 名 主 要 內 容
第8章 游戲與3D應用程序開發 向讀者介紹了在Android平台下進行游戲開發的相關知識,同時還對Android平台下3D應用程序的開發進行了初步介紹
第9章 消息廣播與服務 對Android平台下基於Intent的消息廣播機制進行了介紹,同時通過一個比較大的案例說明Service組件的用法
第10章 網路與數據處理 簡要介紹了在Android平台下進行網路編程的相關知識,同時還對Android平台下的SQLite等數據處理機制進行了介紹
第11章 手機通信功能開發 通過實例對Android平台下基於手機通信功能(如打電話、發簡訊和E-mail)的開發進行了介紹
第12章 手機特有Feature開發 介紹了如何基於Android平台對手機的特性進行開發,如改變壁紙、控制手機振動和音量等
第13章 桌面組件與多媒體數據採集 簡單介紹了如何在Android平台下開發包括快捷方式和實時文件夾等在內的桌面組件的流程,以及如何在程序中對多媒體數據(如音頻和圖像)等進行採集的步驟
第14章 感測器應用的開發 對Android平台下感測器的相關知識進行了簡單介紹,並通過案例來講解開發基於感測器的應用程序的步驟
第15章 Google服務 介紹了在應用程序中與Google提供的如Google Map等網路服務進行混搭的開發步驟
第三篇以三個比較大的案例來說明Android平台下大型應用的開發流程,通過這三個案例的講解,讀者對Android開發將會有更深層次的理解。
章 名 主 要 內 容
第16章 Android游戲開發實踐——快樂數獨 介紹了手機游戲《快樂數獨》的開發,通過該案例向讀者介紹了在Android平台下進行游戲開發的相關知識和基本流程,並對游戲開發中的編程技巧進行了介紹
第17章 Android地圖搜索應用——美食天下 介紹了地圖搜索應用《美食天下》的開發,該應用包括Web端和Android手機端,通過該案例向讀者介紹了在Android平台下開發大型應用的基本步驟
第18章 Android社交分享平台——口袋微博 介紹了社交分享平台《口袋微博》的開發,該平台包括Web端和Android手機端,通過該案例向讀者介紹了基於客戶端/伺服器模式的網路應用程序開發的基本步驟
本書面向的讀者
本書的內容十分詳細,幾乎涵蓋了Android相關的所有技術,並向讀者介紹了真實項目的開發流程,主要面向以下讀者。
Android初學者:本書詳細介紹了Android的基礎知識及各種控制項,並對Android平台下3D程序的開發進行了介紹,Android初學者通過本書可以快速、全面地掌握Android平台相關知識,快速地步入Android開發人員的行列。
有一定java基礎且希望學習Android開發的讀者:Android平台下的開發基於Java語言,有一定Java基礎的讀者通過閱讀本書的前半部分便可快速地掌握Android的各種組件及基礎控制項,然後通過三個真實案例的學習迅速地掌握Android平台下的應用程序開發。
在職的開發人員:本書中的案例都是作者精心挑選的,其中涉及的相關知識均是作者多年來積累的編程經驗及心得體會。具有一定開發經驗的在職開發人員可以通過本書進一步鞏固Android的基礎知識,並迅速成為高級的Android開發人員。
本書作者
吳亞峰,畢業於北京郵電大學,後留學澳大利亞卧龍崗大學取得碩士學位。1998年開始從事Java的開發,有十多年的Java開發與培訓經驗。主要的研究方向為手機游戲、Java EE、搜索引擎,現為手機游戲、Java EE獨立軟體開發工程師,同時兼任Sun授權Java培訓中心認證教師。為數十家著名企業培訓了上千名軟體開發人員,曾編寫過《Java SE 6.0編程指南》、《30天學通Java Web項目案例開發》、《Java程序員職場全攻略:從小工到專家》、《Android 2.0游戲開發實戰寶典》等暢銷技術書籍。2008年開始關注Android平台下的應用開發,並開發出一系列優秀的Android應用程序。
索依娜,畢業於燕山大學,從業於計算機軟體領域9年,在軟體開發和計算機教學方面有著豐富的經驗。工作期間曾參與省級科研項目2項、市級科研項目1項、發表論文多篇;同時為多個廠礦,企事業單位設計、開發了信息管理系統;從2008年開始關注Android平台下應用的開發,參與開發了多款手機娛樂應用。
另外,昊燃、方振宇、陳冠佐、傅奎、陳勤、梁洋洋、畢夢飛、陳慶、柴相花、陳非凡、陳華、陳嵩、承卓也參與了本書的編寫。在此表示感謝!
本書在編寫過程中得到了唐山百納科技有限公司Java培訓中心的大力支持,同時 於庭龍、魏鵬飛、王海峰及作者的家人為本書的編寫提供了很多幫助,在此表示衷心感謝!
由於編者的水平和學識有限,且書中涉及的知識較多,難免有疏漏之處,敬請廣大讀者朋友批評指正。
編者
5. 請問 安卓游戲是怎麼開發的 能不能舉個最簡單的游戲開發例子
android開發建議你先從java學起,java的好書有很多,但是我建議您先專注研究一本,等把這本吃透了再看其他的就容易的多了
Java類的推薦書籍:
HeadFirst java、 Java編程思想、Java2核心技術、Java程序設計經典教程
Android類的推薦書籍:
Android應用開發詳解、 Android應用開發揭秘、 Android游戲開發詳解
Java類的書我建議您先看HeadFirst Java,這本書是美國人寫的有中文版,文風詼諧幽默又不失專業,有助於培養學習的興趣
Android類的書我建議您先看 Android應用開發詳解,內容很細代碼也全,注釋很多,可讀性強
所有人在學習任何新知識時都是從零開始,head first java這本書有很多例子,至少可以通過復制書上代碼編寫一兩個小程序,這就是很好的開始啊。
你從書上內容實踐成功1個小程序到10個小程序是開始的第一步
你從獨立編寫1個小程序到獨立編寫5個小程序是第二步
你從讀懂1個復雜程序源代碼到讀懂20個復雜程序源代碼是第三步
第四步你學成出山了
6. 基於android系統的手機游戲的開發
如果你有興趣為Android平台開發游戲,有很多你需要了解的東西。如果你有過游戲開發經驗,那麼轉移到移動平台上來將不是特別困難。你主要只需學習其架構以及API就行了。如果你是一名游戲開發新手,我總結了一張列表,上面有你必需知道的東西,供你起步用。這些知識適用於很多類型的游戲,包括動作類、策略類、模擬類和益智類。 Android是一個基於Java的環境。這對初學者來說是個好消息,因為相對於C++,Java被廣泛認為是一門更容易上手的語言,它是移動開發的規范。Google也做了一件出色的工作,它將API文檔化並提供示例代碼供使用。其中有個叫做API Demos的示例幾乎展示了所有API的功能。如果你熟悉Java並且用過Eclipse,要讓你的第一個應用跑起來那是相當簡單。如果你以前從沒寫過代碼,在你前進路上還要學習很多,但別氣餒。
獲取SDK
新手上路的第一步便是獲取Android SDK(軟體開發工具包)。SDK里有一個核心類庫,一個模擬器,一些工具和示例代碼。我強烈建議使用Eclipse和Android Eclipse插件。如果你玩Android的話,Eclipse IDE對Java開發者來說很好用。如果這是你第一次開發Java項目,你可能會需要下載全套JDK,它裡麵包括簽名和部署你的應用程序的一些工具。
學習應用程序架構
別急著一頭扎進開發的海洋里,理解Android應用程序架構是很重要的。如果你不學一下,你設計出來的游戲在線下將很難調試。你將需要理解Applications、Activities、Intents以及它們怎樣相互聯系。Google提供了很多有用的架構信息。真正重要的是要理解為什麼你的游戲需要多於一個的Activity,以及什麼才是設計一個有良好用戶體驗的游戲。要理解這些,首先要了解什麼是Activity生命周期。
學習Activity生命周期
Activity生命周期由Android操作系統來管理。你的activity創建、恢復、暫停、銷毀都受操作系統的支配。正確處理這些事件是很重要的,這樣應用程序才能表現良好,做用戶認為正確的事。在你設計你的游戲之前了解所有這些是如何工作的是件好事,因為以後你可以為自己節省調試時間和昂貴的重新設計時間。對大多數應用來說,默認的設置將工作正常,但對於游戲,你可能需要考慮將SingleInstance標志打開。當設置為默認時,Android在它認為合適時會創建activity的新實例。對於游戲來說,你可能只需要一個游戲activity的實例。這對於你要怎樣管理事務的狀態有些影響,但對於我來說,這解決了一些資源管理的問題,應予以考慮。
主循環
根據你寫的游戲的類型,你可能需要也可能不需要一個主循環。如果你的游戲不依賴於時間或者它僅僅對用戶所做的加以回應,並且不做任何視覺上的改變,永遠等待著用戶的輸入,那麼你就不需要主循環。如果你寫的是動作類游戲或者帶有動畫、定時器或任何自動操作的游戲,你應該認真考慮下使用主循環。
游戲的主循環以一個特定的順序通常盡可能多的在每秒鍾內「滴答」提醒子系統運行。你的主循環需要在它自己的線程里運行,原因是Android有一個主用戶界面線程,如果你不運行自己的線程,用戶界面線程將會被你的游戲所阻塞,這會導致Android操作系統無法正常的更新任務。執行的順序通常如下:狀態,輸入,人工智慧,物理,動畫,聲音,錄像。
更新狀態意思是管理狀態轉換,例如游戲的結束、人物的選擇或下一個級別。很多時候你需要在某個狀態上等上幾秒鍾,而狀態管理應該處理這種延遲,並且在時間過了之後設置成下一個狀態。
輸入是指用戶按下的任何鍵、對於滾動條的移動或者用戶的觸摸。在處理物理之前處理這些是很重要的,因為很多時候輸入會影響到物理層,因而首先處理輸入將會使游戲的反應更加良好。在Android里,輸入事件從主用戶界面線程而來,因此你必須寫代碼將輸入放入緩沖區,這樣你的主循環可以在需要的時刻就從緩沖區里取到它。這並非難事。首先為下一個用戶輸入定義一個域,然後將onKeyPressed或onTouchEvent函數設為接到一個用戶動作就放到那個域里,有這兩步就夠了。如果對於給定游戲的狀態,這是一個合法的輸入操作,那麼所有輸入需要在那一刻做的更新操作都已經定下來了,剩下來就讓物理去關心怎樣響應輸入吧。
人工智慧所做的類似於用戶在決定下一個要「按」哪個按鈕。學習怎樣寫人工智慧程序超出了這篇文章的范圍,但大體的意思是人工智慧會按照用戶的意圖來按按鈕。這些也有待物理去處理和響應吧。
物理可能是也可能不是真正的物理。對於動作類游戲來說,關鍵點是要考慮到上一次更新的時間、正在更新的當前時間、用戶輸入以及人工智慧,並且決定它們朝著什麼方向發展和是否會發生沖突。對於一個你可視化地抓取一些部件並滑動它們的游戲來說,物理就是這個游戲中滑動部件或者使之放入合適的位置的部分。對於一個小游戲來說,物理即使這個游戲中決定答案是錯還是對的部分。你可能將其命名為其他東西,但每個游戲都有一個作為游戲引擎的紅肉部分(譯者註:可能是主體部分的意思),在這篇文章里,我把這部分稱為物理。
動畫並非像在游戲里放入會動的gif圖片那樣簡單。你需要使得游戲能在恰當的時間畫出每一幀。這並沒有聽起來那麼困難。保留一些像isDancing、danceFrame和lastDanceFrameTime那樣的狀態域,那樣動畫更新便能決定是否可以切換到下一幀去了。動畫更新真正做的事就那麼多。真正來顯示動畫的變化是由錄像更新來處理的。
聲音更新要處理觸發聲音、停止聲音、音量變化以及音調變化。正常情況下當寫游戲的時候,聲音更新會產生一些傳往聲音緩沖區的位元組流,但是Android能夠管理自己的聲音,因而你的選擇將是使用SoundPool或者MediaPlayer。它們都需要小心處理以免出錯,但你要知道,因為一些底層實現細節,小型、低比特率的聲音文件將帶來最佳的性能和穩定性。
錄像更新要考慮游戲的狀態、角色的位置、分數、狀態等等,並將一切畫到屏幕上。如果使用主循環,你可能需要使用SurfaceView,並做一個「推」繪制。對於其他視圖,視圖本身能夠調用繪制操作,主循環不必處理。SurfaceView每秒產生的幀數最多,最適合於一些有動畫或屏幕上有運動部件的游戲。錄像更新所要做的工作是獲取游戲的狀態,並及時地為這個狀態繪制圖像。其他的自動化操作最好由不同的更新任務來處理。
代碼看起來是什麼樣的?這兒有個例子。
1: public void run() {
2: while (isRunning) {
3: while (isPaused && isRunning) {
4: sleep(100);
5: }
6: update();
7: }
8: }
9:
10: private void update() {
11: updateState();
12: updateInput();
13: updateAI();
14: updatePhysics();
15: updateAnimations();
16: updateSound();
17: updateVideo();
18: }
3D還是2D?
在開始寫游戲之前,你要決定是做3D的還是2D的。2D游戲有一個低得多的學習曲線,一般更容易獲得良好的性能。3D游戲需要更深入的數學技能,並且如果你不在意的話會有性能問題產生。如果你打算畫比方框和圓圈更復雜的圖形,還需要會使用3D Studio和Maya那樣的建模工具。Android支持OpenGL用來3D編程,並且在OpenGL方面有很多很好的教程可供學習。
建立簡單、高質量的方法
上手時,要確保你整個游戲不要就用一個龐大而冗長的方法。如果你遵循我上面描述的主循環模式,這將相當簡單。每個你寫的方法應當完成一個非常特定的任務,並且它就應該無差錯地那樣做。舉例來說,如果你需要洗一副紙牌,你應該寫一個「shuffleCards」的方法,並且該方法就應該只做這一件事。
這是一個適用於任何軟體開發的編碼實踐,但對於游戲開發來說這尤為重要。在一個有狀態的、實時的系統里,調試將變得非常困難。使你的方法盡量的小,一般的經驗法則是每個方法有且僅有一個目的(譯者註:完成且僅完成一個功能)。如果你要為一個場景用編程方式畫一個背景,你可能需要一個叫做「drawBackground」的方法。諸如此類的任務能夠很快完成,因而你可以按照搭積木的方法來開發你的游戲,而你能夠繼續添加你要的功能,並且不會使得這一切難以理解。
最重要的是效率!
性能是任何游戲的主要問題。我們的目標是使得游戲的反應越快越好,看起來越流暢越好。某些方法如Canvas.drawLine比較慢。並且要將屏幕大小的點陣圖畫到主畫布上,每一幀都是代價昂貴的。如何權衡對於達到最佳性能很有必要。確保管理好你的資源,使用技巧來以最少量的CPU資源完成你的任務。如果性能不好的話,即使是最好的游戲玩起來也沒勁。人們一般對於游戲卡或者響應慢幾乎難以容忍。
提示和技巧
看一下SDK中的示例LunarLander。它使用SurfaceView,這對於一個每秒需要處理最多幀的游戲來說是合適的。如果你要做3D,示例中有GLView可以處理3D顯示的很多初始化工作。對LightRacer來說,我不得不優化把所有東西都畫出來這種方法,否則幀率將會大大地降低。我只在視圖初始化的時候把背景畫進一個點陣圖里一次。路徑放在它們自己的點陣圖里,隨著車手的前進而更新。這兩個點陣圖在每一幀里都被畫進主畫布中去,車手畫在頂端,到最後會有一個爆炸。這種技術使得游戲運行在一個可以玩的程度。
如果適用的話,使得你的點陣圖的大小精確等於你打算畫到屏幕上的大小,這也是個好的實踐。這么做了以後就需要縮放,可以節省CPU資源。
在游戲中始終一致的點陣圖配置(如RGBA8888)。這將會通過減少不同格式之間轉換的時間來節省圖形庫的CPU時間。
如果你決定開發3D游戲但沒有3D方面的知識,你需要挑選一兩本3D游戲編程方面的書並學習線性代數。你最少要理解點積、叉積、向量、單元向量、法線、矩陣和變換。這方面我遇到的最好的書是叫《3D游戲編程和計算機圖形學數學》。
聲音文件要小而且低比特率。需要載入的越少,載入速度越快,游戲所需內存越少。
聲音使用OGG文件,圖片使用PNG文件。
確保釋放所有媒體播放器,當Activity銷毀時空出所有的資源。這能保證垃圾收集器清除了所有東西,也能保證在兩次游戲開始之間沒有內存泄露。
加入Android谷歌小組,尋求社區支持。這里有人可以在開發過程中給你幫助。
最重要的是,花時間測試再測試,確保每一小部分都如你所願地工作。改善游戲是整個開發中最耗時最困難的部分。如果你匆匆將其推向市場,你很可能會使用戶們失望,你會感到你的努力都白費了。你不可能使所有人都喜歡你寫的東西,但你至少要盡量發布你最高質量的作品。
Google在這里有幫助你上手的絕佳的文檔。
電驢上也有很多不錯的書籍和視頻教程~希望對你有幫助
7. Android 3D游戲開發技術詳解與典型案例的本書作者
吳亞峰,本科畢業於北京郵電大學,後留學澳大利亞卧龍崗大學取得碩士學位,1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。主要的研究方向為Open GL ES、手機游戲、Java EE、搜索引擎,同時為手機游戲、Java EE獨立軟體開發工程師,並兼任百納科技Java培訓中心首席培訓師。從2000年來為數十家著名企業培養了上千名軟體開發人員,曾編寫過《Java SE6.0編程指南》、《Java程序員職場全攻略——從小工到專家》、《Android2.0游戲開發實戰寶典》、《Android核心技術與實例詳解》等多本暢銷技術書籍。2008年初開始關注Android平台下的應用開發,並開發出一系列優秀的Android應用程序與游戲。
蘇亞光,哈爾濱理工大學碩士,有軟體領域8年的從業經歷,在軟體開發和計算機教學方面有著豐富的經驗。早期主要從事底層軟體的設計與開發工作,現主要從事ARM平台下嵌入式程序的設計、開發等方面的工作。同時,在SOA領域也做了很多有益的工作。
另外,昊燃、方振宇、陳冠佐、傅奎、陳勤、梁洋洋、畢夢飛、陳慶、柴相花、陳非凡、陳華、陳嵩、承卓也參與了本書的編寫。在此表示感謝!
致謝
本書在編寫過程中得到了唐山百納科技有限公司Java培訓中心的大力支持,同時孫佳佳、李光正、蔣召志、鄭安、田永宏、李建寶、王海峰及作者的家人為本書的編寫提供了很多幫助,在此表示衷心的感謝!
由於編者的水平和學識有限,且書中涉及的知識較多,難免有疏漏之處,敬請廣大讀者朋友批評指正,並多多提出寶貴意見。
編者
8. Android游戲開發大全的前言
為什麼要寫一本這樣的書
Android正以前所未有的速度聚集著來自世界各地的開發者,越來越多的創意被應用到Android應用程序的開發中,大有席捲整個手機產業的趨勢。
面對如此火爆的Android大潮,一些有關Android的技術書籍也開始登上各地書架。但是縱觀這些本來就為數不多的Android書籍,卻沒有一本是關於Android游戲開發專題的,而手機游戲歷來是移動開發中最重要的部分。
本書正是在這種情況下應運而生的,作為國內第一本講解Android游戲案例開發的專業書籍,作者為這本書傾注了很多的心血。書中既有對Android應用程序框架的介紹,也有對游戲開發相關知識的講解,同時還有多個Android平台下的實際游戲案例。希望可以快速幫助讀者提高在Android平台下進行游戲開發的能力。
內容導讀
本書內容分為兩篇,第1篇主要介紹Android平台下應用程序的框架和基礎開發知識,同時還介紹了游戲開發相關的知識,主要內容安排如下。
章名 主要內容
第1章Android平台簡介
介紹Android的來龍去脈,並介紹Android應用程序的框架,然後對Android的開發環境進行搭建和調試
第2章Android游戲開發之前台渲染
對Android的用戶界面進行詳細介紹,同時講解圖形、動畫、音頻、視頻的實現,並對圖像採集技術進行講述
第3章Android游戲開發之互動式通信
簡要介紹應用程序的基本組件,詳細介紹應用程序內部或組件之間的通信方式
第4章Android游戲開發之數據存儲和感測器
通過實例介紹Android平台下SQLite資料庫與感測器的原理及使用方法
第5章Android游戲開發之網路編程
首先對Socket套接字以及HTTP進行介紹,然後通過一個實例講解GoogleMap應用的實現
第6章不一樣的游戲,一樣的精彩
介紹不同類型游戲的特色及開發特點
第7章游戲背後的數學與物理
9. 有哪些好玩且耐玩的 Android 游戲
這是我的戰爭、死亡扳機、我的世界、英雄戰魂、戰姬天下、坦克世界:閃電戰、崩壞學園2、爐石傳說、暗黑復仇者2.太極熊貓、全民槍戰、鎮魔曲、陰陽師。arpg:死亡奔跑、崩壞3、魂之幻影、一百種死法、魂之幻影、魔幻神傳、魂、仙劍奇緣、米拉奇戰記、壞蛋英雄、魂武者、極無雙。街機:時空獵人、龍珠格鬥、火影忍者、幽游白書、龍珠格鬥、拳皇。最好買個oneBoard Pro+安卓手游電腦,大屏幕玩游戲,京東就有。非常爽。iOS和安卓互通回合制:仙劍奇俠傳3d、仙靈世界、神鵰俠侶、魔靈召喚、夢幻西遊、夢想世界、鎖鏈戰記、魔力寶貝、神武。卡牌:少年三國志爐石傳說RPG:亂斗西遊、刀塔傳奇RTS:海島奇兵、COC格鬥:蒼翼默示錄FPS:全民突擊MOBA:自由之戰、王者榮耀ARPG:太極熊貓。
10. 推薦簡單又好玩的Android游戲
開心消消樂,糖果傳奇,瘋狂外星人
這些都是很簡單很休閑的手機游戲
玩起來就挺不下來。這些游戲我都是在應用寶里找的
你要是想找更多的話你也可以去應用寶里找一下
它裡面的游戲特別多,選擇的空間是很大的
像游戲分類的休閑類里就有很多符合你要求的游戲
還有各種類型的游戲排行,裡面的數據也是很有參考價值的
希望你可以玩的愉快哈