Android游戏案例开发大全(第4版)

第1章Android平台简介1
1.1Android的来龙去脉1
1.2掀起Android的盖头来1
1.2.1选择Android的理由1
1.2.2Android的应用程序框架2
1.3Android开发环境的搭建4
1.3.1AndroidStudio和AndroidSDK的下载4
1.3.2AndroidStudio和AndroidSDK的安装4
1.3.3开发个Android程序8
1.3.4Android程序的监控与调试13
1.4已有AndroidStudio项目的导入与运行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.3Android平台下的多媒体开发32
2.3.1音频的播放32
2.3.2视频的播放35
2.3.3Camera图像采集37
2.4本章小结39
第3章Android游戏开发中的交互式通信40
3.1Android应用程序的基本组件40
3.1.1Activity组件40
3.1.2Service组件42
3.1.3BroadcastReceiver组件42
3.1.4ContentProvider组件43
3.1.5AndroidManifest.xml文件简介44
3.2应用程序的内部通信46
3.2.1消息的处理者——Handler类简介47
3.2.2使用Handler进行内部通信48
3.3应用程序组件之间的通信49
3.3.1Intent类简介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.4SQLite的使用示例65
4.1.5数据共享者——ContentProvider的使用68
4.1.6简单的数据存储——Preferences的使用71
4.2Android平台下传感器应用的开发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中解析XML100
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.1GeoLib库中常用基础类的介绍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深度优先路径搜索DFS197
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.2Android中的查找表技术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.22D的王者JBox2D251
10.2.1基本的物理学概念251
10.2.2JBox2D中常用类的介绍252
10.3木块金字塔被撞击案例262
10.3.1案例运行效果262
10.3.2案例的基本框架结构263
10.3.3常量类——Constant263
10.3.4物体类——MyBody264
10.3.5圆形物体类——MyCircleColor264
10.3.6矩形物体类——MyRectColor265
10.3.7生成物理形状工具类——Box2DUtil266
10.3.8主控制类——MyBox2dActivity267
10.3.9显示界面类——GameView269
10.3.10绘制线程类——DrawThread270
10.4简易打砖块案例271
10.4.1案例运行效果271
10.4.2需要了解的类271
10.4.3碰撞监听器——MyContactListener类274
10.4.4碰撞检测工具类——BodySearchUtil275
10.4.5绘制线程类——DrawThread275
10.5物体无碰撞下落案例276
10.5.1案例运行效果276
10.5.2碰撞过滤器——ContactFilter类277
10.5.3碰撞过滤类的开发277
10.5.4多边形刚体类——MyPolygonColor278
10.5.5生成刚体性状的工具类——Box2DUtil279
10.5.6主控制类——MyBox2dActivity279
10.5.7显示界面类——GameView281
10.6关节——Joint282
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主控制类——MyBox2DActivity320
10.7.4线程类——DrawThread321
10.8光线投射案例322
10.8.1案例运行效果322
10.8.2RayCastInput类与RayCastOutput类322
10.8.3光线检测类——MyRayCast323
10.8.4主控制类——MyBox2dActivity324
10.8.5显示界面类——GameView325
10.9模拟爆炸案例327
10.9.1案例运行效果327
10.9.2光线投射回调接口——RayCastCallback327
10.9.3自身的光线投射回调类——RayCastClosestCallback328
10.9.4主控制类——MyBox2dActivity328
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.1OpenGL和OpenGLES简介341
11.23D基本知识343
11.3OpenGLES2.0344
11.3.1OpenGLES2.0的渲染管线345
11.3.2不同的绘制方式348
11.3.3初识OpenGLES2.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利用OpenGLES2.0绘制真实的流体377
11.4.1流体绘制的策略377
11.4.2一个简单的案例379
11.4.3流体计算流水线回顾388
11.5OpenGLES3.x389
11.5.1程序升级的要点390
11.5.2一个简单的案例390
11.6用OpenGLES实现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.5Android端的开发411
12.5.1数据类的开发411
12.5.2TankActivity类的开发413
12.5.3MySurfaceView类的开发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.2Android平台下游戏开发的准备工作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游戏主控类MainActivity488
14.4.2游戏常量类Constant490
14.4.3游戏常量类SourceConstant491
14.5界面相关类494
14.5.1游戏界面管理类ViewManager494
14.5.2主选关界面类BNMainSelectView498
14.5.3游戏界面类BNGameView502
14.5.4纹理矩形绘制类RectForDraw512
14.5.5屏幕自适应相关类515
14.6线程相关类517
14.6.1物理刷帧线程类PhysicsThread517
14.6.2数据计算线程类SaveThread519
14.6.3火焰线程类FireUpdateThread520
14.7水粒子的相关类521
14.7.1水粒子物理封装类WaterObject521
14.7.2水纹理生成类WaterForDraw522
14.7.3计算类PhyCaulate525
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_Activity546
15.5界面显示类548
15.5.1显示界面类GlSurfaceView549
15.5.2界面抽象父类TFAbstractView549
15.5.3加载资源界面类LoadView550
15.5.4选关设置界面类SelectView551
15.5.5武器界面类WeaponView553
15.6场景及相关类553
15.6.1总场景管理类AllSence554
15.6.2关卡场景类SenceLevel1555
15.6.3水面类Water556
15.6.4场景数据管理类SenceData556
15.7辅助类557
15.7.1按钮管理类MenuButton557
15.7.2单个怪物类SingleMonster1558
15.7.3单个炮弹类SingleBullet1561
15.7.4标志板管理类BoardGroup563
15.7.5炮台管理类PaoGroup564
15.8工具线程类565
15.8.1obj模型加载类LoadUtil565
15.8.2交点坐标计算类IntersectantUtil567
15.8.3纹理管理器类TextureManager567
15.8.4水流动线程类WaterThread568
15.8.5怪物炮弹控制线程类MonPaoThread569
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.5Activity和游戏工具类的开发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.1Figure类的代码框架604
16.7.2Dice类的代码框架606
16.7.3FigureGoThread类的代码框架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.1BNObject绘制类的开发658
17.6.2BNPolyObject绘制类的开发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

吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGLES、WebGL、Vulkan及手机游戏。同时为手机游戏、移动3D应用独立软件开发工程师,并兼任百纳科技Java培训中心首xi培训师。近十年来为数十家企业培养了上千名软件开发人员,曾编写过《Cocos2d-X案例开发大全》《Cocos2d-X3.0游戏开发实战详解》《Cocos2d-X3.x游戏案例开发大全》《OpenGLES3.x游戏开发(上下卷)》《H5和WebGL3D开发实战详解》等多本畅销技术书籍。

2008年初开始关注Android平台下的3D应用开发,并开发出一系列的Android应用程序与3D游戏。 在介绍基础内容时,每个知识点都配有相应的实例,通过这些实例,读者可以更好地理解书中所介绍的知识。7个大的游戏案例,包括休闲游戏、益智游戏、动作游戏、塔防游戏、策略游戏等不同的游戏类型,每种游戏类型的案例开发都有其独特的地方本书中所有案例的完整源代码都更新为AndroidStudio版本,便于读者紧跟潮流 本书内容分为两大部分:首先讲解了Android游戏开发核心技术,主要包括Android游戏开发的前台渲染、交互式通信、数据存储和传感器、网络编程、游戏背后的数学与物理、游戏地图开发、游戏开发小秘技、ox2D物理引擎、3D应用开发基础等;接下来介绍Android游戏开发实战综合案例,包括多种流行的游戏类型,如滚屏动作类游戏-《坦克大战》、网络游戏-《风火三国》、益智类游戏-《Wo!Water!》、3D塔防类游戏-《三国塔防》、策略游戏-《大富翁》、休闲类游戏-《切切乐》、休闲类游戏-《3D冰球》等。本书适合Android初学者、游戏开发人员阅读,也可作为高校相关专业的学习用书或培训学校的教材。

#现在前往

精选留言

Android,游戏,案例,开发
sample
2020-11-13
写留言
签到
投稿
QQ咨询
返回顶部