网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | Android游戏案例开发大全 |
分类 | 人文社科-社会科学-语言文字 |
作者 | 吴亚峰,苏亚光,于复兴 编 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 内容推荐 本书内容分为两大部分:首先讲解了Android游戏开发核心技术,主要包括Android游戏开发的前台渲染、交互式通信、数据存储和传感器、网络编程、游戏背后的数学与物理、游戏地图开发、游戏开发小秘技、ox2D物理引擎、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游戏。 目录 章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 0章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 1章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 2章滚屏动作类游戏——《坦克大战》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 3章网络游戏开发——《风火三国》网络对战游戏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 4章益智类游戏——《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 5章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 6章策略游戏——《大富翁》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 7章休闲类游戏——《切切乐》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 8章休闲类游戏——《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 …… |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。