编辑推荐
涵盖Android游戏开发的核心技术,如前台渲染、交互式通信、数据存储和传感器、网络编程、游戏背后的数学与物理、游戏地图开发、游戏开发小秘技、JBox2D物理引擎、3D应用开发等。
7大Android游戏开发实战综合案例,包括现在流行的多种游戏类型,如滚屏动作类游戏——坦克大战、网络游戏开发——风火三国网络对战游戏、物理传感器游戏——哇!重力球、塔防游戏——炫彩塔防、策略游戏——大富翁、休闲类游戏——切切乐、休闲类游戏——3D冰球,每种游戏类型的案例开发都有其独特的地方。
内容简介
本书是讲解Android游戏案例开发的专业书籍,全书分两部分共18章,前半部分为Android游戏开发核心技术,主要包括Android游戏开发的前台渲染、交互式通信、数据存储和传感器、网络编程、游戏背后的数学与物理、游戏地图开发、游戏开发小秘技、JBox2D物理引擎、3D应用开发基础等;后半部分为Android游戏开发实战综合案例,包括现在流行的多种游戏类型,如滚屏动作类游戏——坦克大战、网络游戏开发——风火三国网络对战游戏、物理传感器游戏——哇!重力球、塔防游戏——炫彩塔防、策略游戏——大富翁、休闲类游戏——切切乐、休闲类游戏——3D冰球。
本书适合Android初学者、有Java基础的读者、在职开发人员、游戏开发爱好者、程序员阅读参考,也可作为大中专院校相关专业的学习用书和培训学校的教材。
作者简介
吴亚峰,毕业于北京邮电大学,后留学澳大利亚取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,并兼任百纳科技Java培训中心首席培训师。近十年来为数十家企业培养了上千名高级软件开发人员,曾编写过《Android 3D游戏开发技术宝典——OpenGL ES 2.0》、《Cocos2d-X 3.0游戏开发实战详解》、《Unity 4 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 SDK的下载 4
1.3.2 Android SDK的配置 5
1.3.3 创建并启动模拟器 7
1.3.4 第一个Android程序 9
1.3.5 Android程序的监控与调试 13
1.4 已有Android项目的导入与运行 15
1.4.1 项目的导入 15
1.4.2 项目的运行 17
1.5 小结 18
第2章 Android游戏开发中的前台渲染 19
2.1 创建Android用户界面 19
2.1.1 布局管理 19
2.1.2 常用控件及其事件处理 24
2.2 图形与动画在Android中的实现 26
2.2.1 简单图形的绘制 26
2.2.2 贴图的艺术 27
2.2.3 剪裁功能 29
2.2.4 自定义动画的播放 32
2.3 Android平台下的多媒体开发 34
2.3.1 音频的播放 34
2.3.2 视频的播放 37
2.3.3 Camera图像采集 39
2.4 小结 41
第3章 Android游戏开发中的
交互式通信 42
3.1 Android应用程序的基本组件 42
3.1.1 Activity组件 42
3.1.2 Service组件 44
3.1.3 Broadcast Receiver组件 44
3.1.4 Content Provider组件 46
3.1.5 AndroidManifest.xml
文件简介 46
3.2 应用程序的内部通信 49
3.2.1 消息的处理者——Handler
类简介 49
3.2.2 使用Handler进行内部通信 50
3.3 应用程序组件之间的通信 52
3.3.1 Intent类简介 52
3.3.2 应用程序组件——IntentFilter
类简介 53
3.3.3 示例1:与Android系统
组件通信 54
3.3.4 示例2:应用程序组件间通信
示例Activity部分的开发 55
3.3.5 示例3:应用程序组件间通信
示例Service部分的开发 57
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.4 SQLite的使用示例 67
4.1.5 数据共享者——Content
Provider的使用 70
4.1.6 简单的数据存储——
Preferences的使用 74
4.2 Android平台下传感器应用
的开发 75
4.2.1 基本开发步骤 76
4.2.2 光传感器 78
4.2.3 温度传感器 80
4.2.4 接近传感器 81
4.2.5 加速度传感器 83
4.2.6 磁场传感器 85
4.2.7 姿态传感器 87
4.2.8 陀螺仪传感器 90
4.2.9 加速度传感器综合案例 91
4.2.10 传感器的坐标轴问题 94
4.3 小结 97
第5章 Android游戏开发中的网络编程 98
5.1 基于Socket套接字的网络编程 98
5.2 基于HTTP的网络编程 101
5.2.1 通过URL获取网络资源 101
5.2.2 在Android中解析XML 103
5.3 Android平台下的百度地图 103
5.3.1 准备工作 104
5.3.2 简单的案例 107
5.4 蓝牙通信 111
5.4.1 基础知识 111
5.4.2 简单的案例 111
5.5 简单的多用户并发网络游戏
编程架构 122
5.5.1 基本知识 122
5.5.2 双人联网操控飞机案例 124
5.6 小结 134
第6章 不一样的游戏,一样的精彩应用 135
6.1 射击类游戏 135
6.1.1 游戏玩法 135
6.1.2 视觉效果 135
6.1.3 游戏内容设计 136
6.2 竞速类游戏 136
6.2.1 游戏玩法 137
6.2.2 视觉效果 137
6.2.3 游戏内容设计 137
6.3 益智类游戏 138
6.3.1 游戏玩法 138
6.3.2 视觉效果 138
6.3.3 游戏内容设计 139
6.4 角色扮演游戏 139
6.4.1 游戏玩法 139
6.4.2 视觉效果 140
6.4.3 游戏内容设计 140
6.5 闯关动作类游戏 141
6.5.1 游戏玩法 141
6.5.2 视觉效果 142
6.5.3 游戏内容设计 142
6.6 冒险游戏 142
6.6.1 游戏玩法 142
6.6.2 视觉效果 143
6.6.3 游戏内容设计 144
6.7 策略游戏 144
6.7.1 游戏玩法 144
6.7.2 视觉效果 145
6.7.3 游戏内容设计 145
6.8 养成类游戏 146
6.8.1 游戏玩法 146
6.8.2 视觉效果 146
6.8.3 游戏内容设计 146
6.9 经营类游戏 147
6.9.1 游戏玩法 147
6.9.2 视觉效果 148
6.9.3 游戏内容设计 148
6.10 体育类游戏 148
6.10.1 游戏玩法 148
6.10.2 视觉效果 149
6.10.3 游戏内容设计 149
6.11 小结 149
第7章 游戏背后的数学与物理 151
7.1 编程中经常用到的数理知识 151
7.1.1 数学方面 151
7.1.2 物理方面 153
7.2 碰撞检测技术 153
7.2.1 碰撞检测技术基础 154
7.2.2 游戏中实体对象之间的
碰撞检测 155
7.2.3 游戏实体对象与环境之间
的碰撞检测 157
7.2.4 穿透效应问题 158
7.3 必知必会的计算几何 159
7.3.1 GeoLib库中常用基础类
的介绍 159
7.3.2 无孔多边形的相关知识 167
7.3.3 有孔多边形的相关知识 170
7.3.4 有孔多边形案例 173
7.3.5 显示凸壳案例 177
7.3.6 多边形切分案例 180
7.3.7 显示包围框以及多边形的
矩形组合案例 184
7.3.8 旋转与凸子区域案例 186
7.3.9 平滑与计算最短距离案例 188
7.3.10多边形缩放与不重叠案例 189
7.3.11 求多边形对称案例 191
7.3.12 多边形集合运算案例 192
7.4 小结 194
第8章 游戏地图必知必会 195
8.1 两种不同单元形状的地图 195
8.1.1 正方形单元地图 195
8.1.2 正方形单元地图案例 197
8.1.3 正六边形单元地图 198
8.1.4 正六边形单元地图案例 200
8.1.5 正方形单元和正六边形单元
地图的比较 202
8.2 正六边形单元地图的路径搜索 202
8.2.1 路径搜索示例基本框架
的搭建 203
8.2.2 深度优先路径搜索DFS 208
8.2.3 广度优先路径搜索BFS 209
8.2.4 路径搜索算法——
Dijkstra 212
8.2.5 用A*算法优化算法 215
8.3 正六边形单元地图的网格定位 217
8.3.1 基本知识 217
8.3.2 简单的案例 217
8.4 地图编辑器与关卡设计 219
8.4.1 关卡地图的重要性 219
8.4.2 图片分割界面的实现 221
8.4.3 地图设计界面的实现 224
8.5 多分辨率屏幕的自适应 230
8.5.1 非等比例缩放 230
8.5.2 非等比例缩放案例 231
8.5.3 等比例缩放并剪裁 234
8.5.4 等比例缩放并剪裁案例 235
8.5.5 等比例缩放并留白 236
8.5.6 等比例缩放并留白案例 237
8.6 小结 238
第9章 游戏开发小秘技 239
9.1 有限状态机 239
9.1.1 何为有限状态机 239
9.1.2 有限状态机的简单实现 240
9.1.3 有限状态机的OO实现 244
9.2 游戏中的模糊逻辑 246
9.2.1 模糊的才是真实的 246
9.2.2 如何在Android中将游戏
模糊化 247
9.3 游戏的基本优化技巧 249
9.3.1 代码上的小艺术 249
9.3.2 Android中的查找表技术 250
9.3.3 游戏的感觉和性能问题 252
9.4 多点触控技术的使用 253
9.4.1 基本知识 253
9.4.2一个简单
前言/序言
Android 游戏开发大全(第3版) 简介 《Android 游戏开发大全(第3版)》是一部为 aspiring 和 experienced Android 游戏开发者量身打造的全面指南。本书深入探讨了 Android 游戏开发的各个方面,从基础概念到高级技术,旨在帮助读者掌握创建引人入胜、高性能 Android 游戏所需的知识和技能。本书以其详尽的讲解、丰富的示例代码和实用的开发技巧,成为 Android 游戏开发领域的权威参考。 核心内容概览 本书共分为多个部分,层层递进,系统地构建读者的 Android 游戏开发知识体系。 第一部分:Android 游戏开发基础 Android 开发环境搭建与项目管理: 详细介绍 Android Studio 的安装与配置,包括 SDK、AVD 的设置,以及 Android 项目的创建、结构和核心组件(Activity、Service、Broadcast Receiver、Content Provider)的解析。重点讲解如何为游戏项目进行合理的工程化管理。 Android UI 与图形绘制基础: 深入理解 Android 的 UI 布局系统,包括 XML 布局、ConstraintLayout、LinearLayout 等,并介绍 Canvas API,讲解如何在屏幕上进行基本的 2D 图形绘制,如绘制线条、矩形、圆形、文本等。 游戏循环与基本渲染: 讲解游戏开发中的核心概念——游戏循环(Game Loop),包括帧同步、状态管理等。初步介绍如何在 Android 平台上实现基本的帧渲染,为后续的图形渲染打下基础。 事件处理与用户输入: 详细讲解 Android 的事件分发机制,包括触摸事件(MotionEvent)、按键事件(KeyEvent)等,以及如何处理用户输入,为游戏交互提供支持。 资源管理与多媒体集成: 学习如何有效地管理游戏资源,如图片、音频、字符串等。掌握音频播放(MediaPlayer, SoundPool)和视频播放(VideoView)等功能,为游戏增加视听元素。 第二部分:2D 游戏开发核心技术 SurfaceView 与游戏屏幕绘制: 深入讲解 SurfaceView 的特性,以及如何利用它来实现高效的离屏渲染,这是构建流畅 2D 游戏画面的关键。详细介绍 SurfaceHolder 的使用,以及在 SurfaceView 的 Canvas 上进行游戏画面的绘制、更新和刷新。 精灵(Sprite)与动画: 讲解精灵的概念,以及如何创建和管理游戏中的角色、道具等视觉元素。深入介绍各种动画技术,包括帧动画、属性动画(Object Animator),以及如何实现平滑、生动的角色移动和状态变化。 碰撞检测: 讲解不同类型的碰撞检测算法,如 AABB(轴对齐包围盒)、圆形碰撞等,并提供实际的代码实现,帮助开发者实现游戏中角色之间的互动与响应。 Tile-based 游戏开发: 讲解基于瓦片(Tile)的游戏地图设计与渲染技术,包括瓦片地图的创建、加载与绘制,以及如何实现视差滚动等效果。 物理引擎基础(2D): 介绍 2D 物理引擎的基本原理,如重力、速度、加速度等。讲解如何使用简单的物理模拟来增强游戏的真实感,例如实现跳跃、落地等效果。 游戏状态管理与关卡设计: 讲解如何设计和实现复杂的游戏状态机,管理游戏的不同阶段(菜单、游戏进行中、暂停、游戏结束等)。探讨关卡设计的原则与方法,以及如何加载和切换不同的游戏关卡。 游戏音效与背景音乐: 详细介绍 SoundPool 和 MediaPlayer 的高级用法,讲解如何通过音效和背景音乐来提升游戏的沉浸感和用户体验。 第三部分:高级 2D 游戏开发技术与优化 位图(Bitmap)操作与图像处理: 深入讲解 Bitmap 的内存管理,以及各种位图操作,如缩放、裁剪、像素级处理、颜色滤镜等,用于实现更丰富的视觉效果。 粒子系统: 讲解如何创建和控制粒子系统,模拟烟雾、火焰、爆炸、魔法效果等,为游戏增添视觉冲击力。 游戏存档与读取: 讲解实现游戏进度的保存与加载,包括使用 SharedPreferences、SQLite 数据库、文件流等多种方式。 性能优化技巧: 针对 Android 设备的性能限制,本书将提供一系列实用的优化技巧,包括内存优化、CPU 优化、绘制优化、缓存策略等,确保游戏流畅运行。 多线程与异步编程: 讲解如何在 Android 中安全有效地使用多线程,如 AsyncTask、Thread、Handler、Looper,以避免 UI 线程阻塞,并提升游戏性能。 第四部分:跨平台游戏开发(可选,视具体版本内容) 游戏引擎介绍: 简要介绍主流的跨平台游戏引擎,如 Unity、Cocos2d-x 等,并对比其优缺点。 使用特定引擎进行 Android 游戏开发: 可能会包含使用某一特定跨平台游戏引擎(例如 Cocos2d-x)在 Android 平台上进行游戏开发的示例和关键技术讲解。 第五部分:游戏发布与商业化 Android 应用打包与签名: 讲解如何生成 APK 文件,以及应用签名的重要性与操作流程。 Google Play Store 发布流程: 详细介绍将游戏发布到 Google Play Store 的步骤,包括账号注册、应用信息填写、价格设置、商店截图准备等。 广告集成: 讲解如何在游戏中集成广告,如 AdMob,以实现商业化变现。 应用内购买(In-App Purchases): 讲解实现应用内购买功能的原理和实现方法。 游戏数据分析与推广: 探讨如何通过数据分析来了解玩家行为,以及有效的游戏推广策略。 本书的特色 循序渐进的学习路径: 本书从最基础的 Android 开发概念讲起,逐步深入到复杂的游戏开发技术,确保不同基础的读者都能轻松上手。 丰富的实战案例: 每一项技术点都配有清晰、可运行的示例代码,读者可以通过实践加深理解,并直接应用于自己的项目中。 深入的原理剖析: 不仅教授“如何做”,更深入剖析“为什么这么做”,帮助读者建立扎实的理论基础。 性能优化是重点: 强调 Android 游戏开发中的性能瓶颈和优化方法,帮助开发者打造流畅、响应迅速的游戏。 全面的内容覆盖: 涵盖了从游戏设计、开发、优化到发布和商业化的整个流程,为读者提供一个完整的知识体系。 贴合实际开发需求: 本书内容紧跟 Android 开发的最新趋势和最佳实践,确保读者学习到的知识具有实用价值。 适用人群 初学者: 对 Android 开发有基本了解,希望进入游戏开发领域的开发者。 有经验的 Android 开发者: 希望将现有技能扩展到游戏开发领域的开发者。 独立游戏开发者: 寻求创建和发布自己 Android 游戏的个人或小型团队。 计算机科学专业学生: 希望学习游戏开发实践的在校学生。 学习本书,你将能够: 熟练掌握 Android Studio 的游戏开发相关配置。 运用 Canvas API 和 SurfaceView 实现高效的 2D 图形渲染。 创建和控制游戏中的角色、场景和特效。 实现复杂的动画效果和用户交互。 掌握游戏中的碰撞检测和物理模拟。 进行有效的游戏性能优化。 理解游戏存档、发布和商业化的基本流程。 《Android 游戏开发大全(第3版)》将是你通往成功 Android 游戏开发者之路的得力助手,帮助你将创意转化为引人入胜的移动游戏体验。