标题：Android 3D游戏开发技术详解与典型案例
图书信息?
Android 3D游戏开发技术详解与典型案例  Android 3D游戏开发技术详解与典型案例吴亚峰,苏亚光著
ISBN 978-7-121-13263-6 
2011年4月出版
定价：89.00元(含DVD光盘1张)
16开
692页
宣传语?
500分钟视频讲解
结合真实案例介绍Android平台下
OpenGL ES基本技术的使用及3D游戏开发的完整流程
内 容 简 介?
本书主要以Android平台下3D游戏的开发为主题，并结合真实的案例向读者详细介绍了OpenGL ES的基础知识及3D游戏程序开发的整个流程。
全书分为两篇共22章，第一篇以简单易懂的实例为依托，详细介绍了OpenGL ES各方面的基础知识，第二篇则对7个真实案例的开发步骤进行了详细的介绍，逐步向读者讲解Android 3D游戏的真实开发过程，同时源代码中还包含了详细的注释，以尽量帮助读者掌握代码中的每一个细节，尽快掌握Android 3D游戏开发。
本书的讲述由浅入深，从Android平台下3D游戏开发应用的基础知识到开发大型游戏程序，结构清晰、语言简洁，非常适合初学者和进阶开发者阅读参考。
前 言
为什么要写一本这样的书
在最近几年里，移动通信和互联网成为当今世界发展最快、市场潜力最大、前景最诱人的两大业务。它们的增长速度是任何预测家都未曾预料到的。迄今，全球移动用户已超过15亿，互联网用户也已逾7亿，中国移动通信用户总数超过3.6亿，互联网用户总数则超过1亿。移动互联网正逐渐渗透到人们生活、工作的各个领域。
在移动互联网的使用量方面，iPhone和Android已超过面市较早的智能手机平台。据comScore对苹果应用软件店（Apple App Store）一份全面的研究报告中显示，人们在iPhone和iPod touch上使用最多的软件是游戏。其中，游戏软件中70%~75%为3D游戏软件。
然而，目前市面上的Android技术书籍还比较少，Android 3D游戏开发的书籍更是没有（包括外文版的也没有）。因此，在现在市面上，Android游戏开发的书籍特别是Android 3D游戏开发的书籍还是有相当大的市场需求。
本书既介绍了Android 3D游戏开发中必知必会的基础知识，同时通过7个真实案例向读者介绍Android 3D游戏的完整开发步骤，希望通过本书能够使读者尽快掌握Android 3D游戏开发的相关知识。
本书特点?
1. 内容饱满，由浅入深
本书内容既包括Android 3D游戏开发的基础知识，也有项目编程的实用技巧，同时还提供了多个真实案例供读者学习。本书在知识的层次上由浅入深，使读者可以从Android 3D游戏开发的门外汉平稳、快速地步入Android 3D游戏开发的殿堂。
2. 结构清晰、语言简洁
本书中所有案例都是按照笔者的实际开发过程进行介绍的，同时也是按照真实项目的开发流程进行的，结构清晰、语言简洁、便于实际练习，同时为了帮助读者更好地理解相关知识点，全书穿插着很多实用技巧及温馨提示。
3. 实用超值的光盘
为了帮助读者更好地掌握与实践Android 3D游戏的开发，本书附赠DVD光盘，其中包括案例的多媒体视频、电子教案（PPT）和实例源代码等。
内容导读
本书共分两篇，第一篇介绍了Android 3D游戏开发的基础知识，主要对OpenGL ES的相关内容进行了介绍。
章 名主 要 内 容
第1章 英雄还看今朝—Android简介本章介绍了市场上主流的手机平台，同时也分析了未来手机平台的发展趋势及Android平台的前景
第2章 数风流人物—当前流行游戏类型简介本章以分类的方式简要地介绍了当前流行的游戏的玩法，游戏的视觉效果，游戏的设计及《仙剑》等著名游戏的历史
第3章 不积跬步，无以至千里—游戏开发基础知识本章初步介绍了游戏开发的基础知识
第4章 千里之行，始于足下—3D开发基础知识本章介绍了3D开发中的基础知识，包括OpenGL ES的介绍及OpenGL ES中绘制模型的原理，并通过点、线和三角形的绘制介绍了OpenGL ES中模型的几种绘制方式。最后介绍了3D场景中常用的两种投影方式，并通过例子比较了这两种投影的区别
第5章 愿君多采撷，此物最相思—光照效果的开发本章介绍了光照的基础知识，包括环境光、散射光及镜面光
第6章 为伊消得人憔悴——纹理映射本章主要介绍了纹理的基础知识，以及纹理的不同拉伸方式和纹理过滤高级技术，从绘制三角形开始到绘制地月系，可能会经历很长时间，但是这对以后的学习是有帮助的
第7章 海阔凭鱼跃，天高任鸟飞—3D基本形状的构建在本章中介绍了圆柱体、圆锥体、圆环、抛物面、双曲面和螺旋面在OpenGL ES中的渲染方法。这些基本形状在3D世界中应用广泛，在构造一些复杂物体时，经常会运用这些基本形状来进行拼装组合
第8章 执子之手，与子偕老—坐标变换本章介绍了坐标变换的应用。绘制3D场景的过程，主要是旋转和平移操作的组合，通过合理的堆栈操作，就比较容易绘制出所需的3D场景
第9章 孤帆远影碧空尽—摄像机与雾特效在本章中，首先对摄像机及其配置做了介绍。摄像机在3D编程中至关重要，没有正确的配置，摄像机可能不能获得想要的场景效果。然后对雾特效做了具体介绍，应用雾特效可以使场景更加逼真，并且可以减少场景渲染量来提高性能
第10章 假作真时真亦假—混合本章主要为读者介绍了混合，从混合的背景知识到如何配置源因子和目标因子。在介绍源因子和目标因子的时候，向读者介绍了一些预定义常量和一些常用的组合方式，以及如何启用混合
第11章 蓦然回首，那人却在灯火阑珊处—3D高级技术本章主要为读者介绍了3D的一部分高级技术。每一项技术通过讲解其原理和案例，使读者对3D高级技术有一定的了解
第12章 心有灵犀一点通—传感器在本章中，向读者介绍了Android中传感器的相关知识。包括传感器的种类、配置，并且着重介绍了姿态传感器的应用
第13章 千锤万凿出深山—游戏中的数学与物理在本章中对3D游戏中可能会用到的数学及物理知识进行了简单的介绍，这在3D游戏开发中是相当重要的。游戏中的核心算法，基本上都要用到数学和物理知识。一款游戏的性能很大程度上取决于游戏设计的算法
第14章 山舞银蛇，原驰蜡象—AI基本理念本章主要介绍了AI、AI引擎的基本组成与设计，以及游戏AI中图的搜索和模糊逻辑，其中游戏AI中图的搜索为本章的重点。在本章中详细介绍了5种算法的原理与实现
第15章 独上高楼，望尽天涯路—开发小秘籍本章介绍了地图设计器、多键技术、虚拟键盘、查找表技术、状态机、AABB边界框、穿透效应、拾取技术，以及天空盒和天空穹在OpenGL ES中的应用
第二篇以7个比较大的案例来说明Android平台下3D游戏的开发流程，通过这7个案例的讲解，读者对3D游戏的开发将会有更深层次的理解。
章 名主 要 内 容
第16章 体育类游戏——《疯狂投篮》本章介绍了Android 3D游戏《疯狂投篮》的开发。通过该案例向读者介绍了在Android平台下进行3D游戏开发的相关知识和基本流程，并对游戏开发中的编程技巧进行了介绍，并主要介绍了篮球与地面、墙面及篮框的碰撞检测及运动动画的实现方法
第17章 益智类游戏——《旋转积木》本章介绍了Android 3D游戏《旋转积木》的开发。主要介绍了积木旋转的不同状态的实现方法和地图设计器的应用
第18章 休闲类游戏——《摩天大楼》本章介绍了Android 3D游戏《摩天大楼》的开发。主要介绍了楼层与楼层之间的衔接与碰撞及掉落后翻转动画的实现
第19章 动作类游戏——《3D空战》本章介绍了Android 3D游戏《3D空战》的开发。主要介绍了飞机的构造方法和我方战机与敌方战机的操控及动画实现
第20章 桌面类游戏——《激情台球》本章介绍了Android 3D游戏《激情台球》的开发。主要介绍了台球与台球的碰撞检测实现、台球与球桌的碰撞检测实现和进球的判定实现
第21章 射击类游戏——《抢滩登陆》本章介绍了Android 3D游戏《抢滩登陆》的开发。主要运用了灰度图生成技术并且主要介绍了坦克运动的实现方法及炮弹碰撞检测的实现
第22章 竞技类游戏——《乡村飙车》本章介绍了Android 3D游戏《乡村飙车》的开发。主要介绍了运用分层绘制和拼接绘制的策略进行场景的优化绘制，并且对场景部件进行了分类控制
本书面向的读者
本书的内容详细，且几乎涵盖了Android 3D游戏开发所有相关的技术，并向读者介绍了真实项目的开发流程，主要面向以下读者。
Android的初学者
本书详细介绍了OpenGL ES的基础知识，并对Android 3D游戏程序的开发进行了介绍。作为一名Android的初学者，通过本书的学习可以快速全面地掌握Android 3D游戏开发的相关知识，稳健地步入Android 3D游戏开发人员的行列。
有一定Android基础且希望学习Android 3D游戏开发的读者
有一定Android基础的读者通过阅读本书的前半部分便可快速掌握OpenGL ES的基础知识，然后通过7个真实案例的学习迅速掌握Android平台下应用程序的开发。
在职的开发人员
本书中的案例都是作者精心挑选的，其中涉及的相关知识均是作者多年来积累的编程经验及心得体会。具有一定开发经验的在职开发人员可以通过本书的学习进一步巩固OpenGL ES的基础知识，并迅速成为高级3D游戏开发人员。
本书作者
吴亚峰，本科毕业于北京邮电大学，后留学澳大利亚卧龙岗大学取得硕士学位，1998年开始从事Java应用的开发，有10多年的Java开发与培训经验。主要的研究方向为Open GL ES、手机游戏、Java EE、搜索引擎，同时为手机游戏、Java EE独立软件开发工程师，并兼任百纳科技Java培训中心首席培训师。近10年来为数十家著名企业培养了上千名软件开发人员，曾编写过《Java SE6.0编程指南》、《Java程序员职场全攻略——从小工到专家》、《Android2.0游戏开发实战宝典》、《Android核心技术与实例详解》等多本畅销技术书籍。2008年初开始关注Android平台下的应用开发，并开发出一系列优秀的Android应用程序与游戏。
苏亚光，哈尔滨理工大学硕士，有软件领域8年的从业经历，在软件开发和计算机教学方面有着丰富的经验。早期主要从事底层软件的设计与开发工作，现主要从事ARM平台下嵌入式程序的设计、开发等方面的工作。同时，在SOA领域也做了很多有益的工作。 
另外，昊燃、方振宇、陈冠佐、傅奎、陈勤、梁洋洋、毕梦飞、陈庆、柴相花、陈非凡、陈华、陈嵩、承卓也参与了本书的编写。在此表示感谢！
致谢
本书在编写过程中得到了唐山百纳科技有限公司Java培训中心的大力支持，同时孙佳佳、李光正、蒋召志、郑安、田永宏、李建宝、王海峰及作者的家人为本书的编写提供了很多帮助，在此表示衷心的感谢！
由于编者的水平和学识有限，且书中涉及的知识较多，难免有疏漏之处，敬请广大读者朋友批评指正，并多多提出宝贵意见。
编者
目 录
第一篇 必知必会的基础知识
第1章 英雄还看今朝——Android简介20
1.1 群雄割据的手机市场20
1.1.1 手机市场的两颗新星20
1.1.2 手机操作系统的5大元老21
1.2 Android的未来及特点22
1.2.1 得中国市场者得天下22
1.2.2 全新的概念带来全新的体验22
1.3 Android开发环境的搭建22
1.3.1 SDK的安装及环境配置22
1.3.2 Eclipse集成开发环境的搭建23
1.3.3 模拟器的创建和运行24
1.4 第一个Android应用程序的开发25
1.4.1 第一个Android程序26
1.4.2 Android应用程序的调试27
1.5 Android应用程序运行的内部机制29
1.5.1 Android应用程序的项目结构30
1.5.2 Android 应用程序的系统架构31
1.5.3 Android 应用程序框架32
1.5.4 Android 运行时32
1.5.5 系统库33
1.5.6 Linux内核34
1.6 本章小结34
第2章 数风流人物——当前流行游戏类型简介35
2.1 AVG冒险游戏35
2.1.1 游戏玩法35
2.1.2 视觉效果35
2.1.3 游戏设计36
2.2 PZL益智类游戏36
2.2.1 游戏玩法36
2.2.2 视觉效果37
2.2.3 游戏设计37
2.3 ACT动作游戏38
2.3.1 历代游戏介绍38
2.3.2 未来动作游戏的发展39
2.4 RPG角色扮演类游戏40
2.4.1 历代游戏介绍40
2.4.2 Android平台游戏移植42
2.5 STG射击类游戏43
2.5.1 游戏的分类43
2.5.2 游戏的玩法44
2.5.3 游戏设计44
2.6 FPS第一人称视角射击游戏44
2.6.1 游戏玩法44
2.6.2 视觉效果45
2.6.3 游戏设计45
2.7 SLG策略游戏46
2.7.1 游戏的玩法46
2.7.2 视觉效果46
2.7.3 游戏设计47
2.8 SPT体育类游戏47
2.8.1 游戏的玩法47
2.8.2 视觉效果47
2.8.3 游戏设计47
2.9 本章小结48
第3章 不积跬步，无以至千里—游戏开发基础知识49
3.1 游戏中的声音49
3.1.1 迅雷不及掩耳的即时音效49
3.1.2 一个即时音效的例子50
3.1.3 背景音乐播放技术53
3.1.4 简单音乐播放器实现55
3.2 手机中的数据库——SQLite59
3.2.1 SQLite数据库简介59
3.2.2 SQLite数据库的基本操作60
3.2.3 SQLite操作数据库的简单应用60
3.3 文件I/O64
3.3.1 轻松访问SD卡64
3.3.2 访问手机中的存储文件夹67
3.3.3 读取assets中的文件68
3.4 存储简单数据的利器——Preferences70
3.4.1 Preferences简介70
3.4.2 Preferences实现显示上次登录时间70
3.5 SURFACEView在游戏中的使用72
3.5.1 SurfaceView简单操作72
3.5.2 简单动画场景的绘制73
3.6 本章小结78
第4章 千里之行，始于足下—3D开发基础知识79
4.1 OpenGL ES 简介79
4.1.1 师出名门的OpenGL ES79
4.1.2 三角形组成的世界80
4.1.3 第一个OpenGL ES三角形82
4.2 不同的绘制方式87
4.2.1 点和线的绘制87
4.2.2 索引法绘制三角形93
4.2.3 顶点法绘制三角形101
4.3 不一样的投影，不一样的世界103
4.3.1 正交投影103
4.3.2 透视投影104
4.3.3 两种投影的比较105
4.3.4 近大远小的原理112
4.4 本章小结114
第5章 愿君多采撷，此物最相思——光照效果的开发115
5.1 五彩缤纷的源泉——光源115
5.1.1 光源的开启及关闭115
5.1.2 设定光源的数量116
5.1.3 定向光117
5.1.4 定位光118
5.2 光源的颜色119
5.2.1 环境光119
5.2.2 散射光120
5.2.3 镜面反射光121
5.3 材料反光属性的法官——法向量及材质121
5.3.1 法向量的作用121
5.3.2 光照的开启及关闭例子122
5.3.3 物体的材质128
5.3.4 设定光源数量的例子128
5.4 两个物体发光的例子132
5.4.1 定位光例子的实现132
5.4.2 自发光物体加运动光源的实现135
5.4.3 MySurfaceView.java详解137
5.5 面法向量与点平均法向量143
5.5.1 面法向量的应用143
5.5.2 点平均法向量的应用145
5.6 本章小结146
第6章 为伊消得人憔悴—纹理映射147
6.1 3D世界的花衣——纹理贴图147
6.1.1 指定纹理147
6.1.2 分配纹理坐标148
6.1.3 纹理贴图三角形的实现149
6.1.4 纹理贴图球体的构建153
6.2 使用纹理映射构建地月模型161
6.2.1 浩瀚星空中的地月系161
6.2.2 地月系的案例讲解162
6.3 纹理拉伸170
6.3.1 纹理拉伸的原理与用途170
6.3.2 纹理拉伸案例讲解172
6.4 纹理过滤175
6.4.1 最近点采样175
6.4.2 线性纹理过滤176
6.4.3 mipmap：多重细节层176
6.5 视角的合理设置177
6.5.1 不同视角的3D世界177
6.5.2 合理视角案例讲解178
6.6 本章小结180
第7章 海阔凭鱼跃，天高任鸟飞—3D基本形状的构建181
7.1 圆柱体181
7.1.1 圆柱体的几何方程181
7.1.2 圆柱体的OpenGL ES实现182
7.2 圆锥体190
7.2.1 圆锥体的几何方程190
7.2.2 圆锥体的OpenGL ES实现190
7.3 圆环193
7.3.1 圆环的几何方程193
7.3.2 圆环的OpenGL ES实现193
7.4 抛物面196
7.4.1 抛物面的几何方程196
7.4.2 抛物面的OpenGL ES实现197
7.5 双曲面199
7.5.1 双曲面的几何方程199
7.5.2 双曲面的OpenGL ES实现200
7.6 螺旋面202
7.6.1 螺旋面的几何方程202
7.6.2 螺旋面的OpenGL ES实现203
7.7 本章小结205
第8章 执子之手，与子偕老——坐标变换206
8.1 理解坐标变换206
8.1.1 坐标变换的实质206
8.1.2 重要的堆栈操作207
8.2 缩放变换208
8.2.1 缩放变换原理分析208
8.2.2 OpenGL ES中的缩放变换实现208
8.3 平移变换211
8.3.1 平移变换理论概览211
8.3.2 OpenGL ES中的平移变换实现212
8.4 旋转变换213
8.4.1 旋转变换原理概述213
8.4.2 OpenGL ES中的旋转变换实现214
8.5 复合变换的简单案例——地月系模型215
8.6 用复合变换模拟现实世界216
8.7 本章小结218
第9章 孤帆远影碧空尽—摄像机与雾特效219
9.1 摄像机219
9.1.1 摄像机的简介219
9.1.2 摄像机的设置220
9.2 雾特效221
9.2.1 雾特效的相关知识221
9.2.2 雾特效核心代码222
9.3 摄像机与雾特效实现沙漠中的金字塔222
9.3.1 场景部件——四面体和太阳东升西落223
9.3.2 场景部件——星空类226
9.3.3 场景的创建229
9.3.4 摄像机Up方向变换效果232
9.4 本章小结233
第10章 假作真时真亦假——混合234
10.1 什么是混合234
10.2 源因子和目标因子235
10.2.1 源因子和目标因子的默认实现方式235
10.2.2 预定义常量分析235
10.2.3 常用的组合方式236
10.2.4 启用混合237
10.3 混合案例237
10.3.1 一个混合的简单案例237
10.3.2 带光晕和云层效果的地月系模型241
10.3.3 滤光器中的世界245
10.4 本章小结250
第11章 蓦然回首，那人却在灯火阑珊处—3D高级技术251
11.1 标志板251
11.1.1 标志板技术概述251
11.1.2 标志板的案例252
11.2 飘扬的旗帜254
11.2.1 旗帜飘动效果原理254
11.2.2 飘扬旗帜案例讲解255
11.3 山地的生成技术257
11.3.1 灰度图地形技术概述257
11.3.2 灰度图生成3D地形258
11.3.3 地形场景效果的提升261
11.4 镜像技术263
11.4.1 镜像技术的简介264
11.4.2 镜像技术的实现265
11.4.3 镜像技术的提升267
11.5 本章小结268
第12章 心有灵犀一点通——传感器269
12.1 传感器简介269
12.1.1 磁场传感器简介269
12.1.2 光传感器简介269
12.1.3 距离传感器简介270
12.1.4 加速度传感器简介270
12.1.5 姿态传感器简介271
12.1.6 SensorSimulator模拟器的配置273
12.2 传感器的数据传输276
12.2.1 加速传感器的数据传输276
12.2.2 姿态传感器的数据传输278
12.3 传感器实例——平衡球279
12.4 本章小结287
第13章 千锤万凿出深山——游戏中的数学与物理288
13.1 必知必会的几何知识288
13.1.1 三维笛卡儿坐标系288
13.1.2 向量288
13.1.3 加减法290
13.1.4 向量的点积291
13.1.5 向量的叉积291
13.1.6 空间平面的确定292
13.2 不可或缺的物理世界293
13.2.1 重力系统293
13.2.2 碰撞298
13.2.3 完全弹性碰撞299
13.2.4 带有能量损失的弹性碰撞302
13.2.5 粒子系统303
13.3 本章小结311
第14章 山舞银蛇，原驰蜡象—AI基本理念312
14.1 AI简介312
14.1.1 什么是智能312
14.1.2 什么是游戏AI312
14.2 AI引擎的基本组成与设计313
14.2.1 智能体313
14.2.2 处理机与感知314
14.2.3 导航314
14.3 游戏AI中图的搜索315
14.3.1 深度优先搜索315
14.3.2 广度优先搜索321
14.3.3 Dijkstra搜索325
14.3.4 广度优先A*算法的实现329
14.3.5 Dijkstra A*算法的实现332
14.3.6 A*与非A*算法之间的比较334
14.4 模糊逻辑336
14.4.1 普通集合336
14.4.2 模糊集合337
14.4.3 模糊语言变量339
14.4.4 模糊规则339
14.5 本章小结340
第15章 独上高楼，望尽天涯路——开发小秘籍341
15.1 地图设计器341
15.1.1 不可或缺的地图设计器341
15.1.2 简单的地图设计器341
15.2 多键技术347
15.2.1 增加游戏可玩度的多键技术347
15.2.2 多键技术的实例演示348
15.3 虚拟键盘350
15.4 查找表技术351
15.5 状态机352
15.6 AABB边界框354
15.6.1 AABB的表达方法355
15.6.2 计算AABB355
15.6.3 AABB与边界球的比较356
15.6.4 球与球的碰撞357
15.6.5 两个AABB的碰撞358
15.6.6 球与AABB的碰撞361
15.7 穿透效应363
15.8 拾取技术367
15.8.1 拾取技术的原理367
15.8.2 拾取技术的实现369
15.9 天空盒与天空穹377
15.9.1 天空盒的介绍377
15.9.2 天空穹的介绍380
15.10 本章小结382
第二篇 案 例 实 战
第16章 体育类游戏—《疯狂投篮》384
16.1 游戏的背景及功能概述384
16.1.1 背景概述384
16.1.2 功能简介384
16.2 游戏的策划及准备工作388
16.2.1 游戏的策划388
16.2.2 Android平台下游戏的准备工作388
16.3 游戏的架构389
16.3.1 游戏中用到的主要技术389
16.3.2 各类的简要介绍389
16.3.3 游戏的框架简介391
16.4 游戏公共类的设计与实现393
16.4.1 主类BasketballActivity的实现393
16.4.2 游戏常量类的介绍396
16.5 游戏菜单界面类的设计与实现398
16.5.1 游戏开始菜单的框架设计398
16.5.2 游戏开始菜单的实现399
16.5.3 游戏帮助、关于、加载及结束界面的设计与实现402
16.6 游戏界面的设计与实现402
16.6.1 游戏界面的框架设计402
16.6.2 游戏界面的实现404
16.7 游戏界面中主要场景的绘制及篮球运动407
16.7.1 游戏中墙壁、地板、球和篮板等的绘制407
16.7.2 篮板的整体绘制409
16.7.3 篮球的运动实现410
16.8 游戏界面的碰撞检测及物体拾取413
16.8.1 篮球与篮框的碰撞检测413
16.8.2 篮球与墙壁、地板和屋顶的碰撞检测416
16.8.3 手机屏幕拾取技术418
16.9 游戏的优化与改进419
第17章 益智类游戏—《旋转积木》421
17.1 游戏的背景及功能概述421
17.1.1 背景概述421
17.1.2 功能简介421
17.2 游戏的策划及准备工作424
17.2.1 游戏的策划424
17.2.2 Android平台下游戏的准备工作424
17.3 游戏的架构425
17.3.1 游戏中用到的主要技术425
17.3.2 各类的简要介绍425
17.3.3 游戏的框架简介427
17.4 地图设计器的开发428
17.5 游戏公共类的设计与实现431
17.5.1 主类MainActivity的实现431
17.5.2 游戏常量类的介绍434
17.6 游戏菜单界面类的设计与实现437
17.6.1 游戏开始菜单的框架设计438
17.6.2 游戏开始菜单的实现439
17.6.3 游戏帮助、关于、设置及胜利界面的设计与实现441
17.7 游戏界面的设计与实现442
17.7.1 游戏界面的框架设计442
17.7.2 游戏触控方法的实现443
17.7.3 游戏界面的实现445
17.7.4 生成纹理ID的方法448
17.8 游戏界面中主要场景的绘制449
17.8.1 游戏中背景、移表板、图标的绘制449
17.8.2 地图的绘制450
17.8.3 积木的绘制451
17.9 游戏界面的动画效果453
17.9.1 积木转动的动画效果453
17.9.2 游戏失败、获胜的动画效果457
17.10 游戏界面的碰撞检测458
17.11 游戏的优化与改进460
第18章 休闲类游戏—《摩天大楼》461
18.1 游戏的背景及功能概述461
18.1.1 背景概述461
18.1.2 功能简介461
18.2 游戏的策划及准备工作465
18.2.1 游戏的策划465
18.2.2 Android平台下游戏的准备工作465
18.3 游戏的架构466
18.3.1 游戏中用到的主要技术466
18.3.2 各类的简要介绍467
18.3.3 游戏的框架简介468
18.4 游戏公共类的设计与实现469
18.4.1 主类GL_Demo的实现469
18.4.2 游戏常量类的介绍474
18.5 游戏菜单界面类的设计与实现475
18.5.1 游戏开始菜单的框架设计475
18.5.2 游戏开始菜单的实现476
18.5.3 游戏帮助、关于、设置、加载及胜利界面的设计与实现481
18.6 游戏界面的设计与实现481
18.6.1 游戏界面的框架设计481
18.6.2 游戏界面的实现483
18.7 游戏界面中主要场景的绘制487
18.7.1 游戏中背景、地板、建筑块的绘制487
18.7.2 树的绘制487
18.8 游戏界面的碰撞检测488
18.9 游戏的优化与改进492
第19章 动作类游戏—《3D空战》493
19.1 游戏的背景及功能概述493
19.1.1 背景概述493
19.1.2 功能简介494
19.2 游戏的策划及准备工作496
19.2.1 游戏的策划496
19.2.2 Android平台下游戏的准备工作497
19.3 游戏的架构498
19.3.1 游戏中用到的主要技术498
19.3.2 各类的简要介绍498
19.3.3 游戏的框架简介500
19.4 游戏公共类的设计与实现502
19.4.1 主类GL_Demo的实现502
19.4.2 游戏常量类的介绍503
19.5 游戏菜单界面类的设计与实现504
19.5.1 游戏菜单的框架设计504
19.5.2 游戏菜单的实现506
19.5.3 游戏帮助、关于、设置、加载及胜利界面的设计与实现509
19.6 游戏界面的设计与实现509
19.6.1 游戏界面的框架设计509
19.6.2 游戏界面的实现511
19.7 游戏界面中飞机的绘制513
19.8 游戏中的运动线程和碰撞检测515
19.9 游戏的优化与改进525
第20章 桌面类游戏—《激情台球》527
20.1 游戏的背景及功能概述527
20.1.1 背景概述527
20.1.2 功能简介527
20.2 游戏的策划及准备工作531
20.2.1 游戏的策划531
20.2.2 Android平台下游戏的准备工作532
20.3 游戏的架构533
20.3.1 游戏中用到的主要技术533
20.3.2 各类的简要介绍533
20.3.3 游戏的框架简介535
20.4 网络端的开发536
20.4.1 服务器的简要介绍536
20.4.2 服务器的代码介绍537
20.4.3 客户端线程的代码介绍542
20.5 游戏公共类的设计与实现545
20.5.1 主类MyActivity的实现545
20.5.2 游戏常量类的介绍549
20.6 游戏菜单界面类的设计与实现551
20.6.1 游戏开始菜单的框架设计552
20.6.2 游戏菜单的动画实现555
20.6.3 游戏帮助、关于、设置及胜利等界面的设计与实现556
20.7 游戏界面的设计与实现557
20.7.1 游戏界面的框架设计557
20.7.2 游戏中onKeyDown方法的实现558
20.7.3 游戏界面的实现560
20.8 游戏界面中主要场景的绘制563
20.8.1 仪表板、地板的绘制563
20.8.2 台球桌的绘制564
20.8.3 球的绘制566
20.9 游戏中的碰撞检测567
20.9.1 球与球台边角碰撞检测的原理567
20.9.2 球与球碰撞检测的原理569
20.9.3 球与球台边角碰撞检测的实现570
20.9.4 球与球碰撞检测的实现574
20.9.5 球运动线程的实现576
20.10 游戏的优化与改进578
第21章 射击类游戏—《抢滩登陆》579
21.1 游戏的背景及功能概述579
21.1.1 背景概述579
21.1.2 功能简介579
21.2 游戏的策划及准备工作583
21.2.1 游戏的策划583
21.2.2 Android平台下游戏的准备工作583
21.3 游戏的架构584
21.3.1 游戏中用到的主要技术584
21.3.2 各类的简要介绍585
21.3.3 游戏的框架简介588
21.4 游戏公共类的设计与实现589
21.4.1 主类Activity的实现590
21.4.2 游戏常量类的介绍594
21.5 游戏菜单界面类的设计与实现598
21.5.1 游戏菜单界面的框架设计598
21.5.2 游戏菜单界面的实现600
21.5.3 游戏帮助、关于及结束界面的设计与实现604
21.6 游戏界面的设计与实现605
21.6.1 游戏界面的框架设计605
21.6.2 游戏界面的实现607
21.7 游戏界面中主要场景的绘制及实物运动613
21.7.1 游戏中的绘制613
21.7.2 灯塔的整体绘制614
21.7.3 物体的运动实现616
21.8 游戏中的碰撞检测621
21.9 游戏的优化与改进625
第22章 竞技类游戏—《乡村飙车》627
22.1 游戏的背景及功能概述627
22.1.1 背景概述627
22.1.2 功能简介627
22.2 游戏的策划及准备工作631
22.2.1 游戏的策划631
22.2.2 Android平台下游戏的准备工作632
22.3 游戏的框架介绍634
22.3.1 游戏中用到的主要技术634
22.3.2 各类的简单介绍635
22.3.3 游戏的框架介绍638
22.4 游戏公共类的设计与实现640
22.4.1 主类Activity_GL_Racing的实现640
22.4.2 游戏常量类的介绍645
22.5 游戏菜单类的设计与实现649
22.5.1 游戏主菜单的设计与实现650
22.5.2 游戏加载界面的设计与实现651
22.5.3 游戏历史界面的设计与实现656
22.5.4 游戏帮助、设置、关于、选择等界面的设计与实现658
22.6 游戏界面的设计与实现659
22.6.1 游戏界面的框架设计659
22.6.2 游戏界面的实现661
22.6.3 传感器应用与多点触控技术665
22.7 游戏界面中主要场景的绘制666
22.7.1 游戏界面中场景的分层绘制及渲染优化667
22.7.2 游戏界面中地图赛道的生成与绘制669
22.7.3 场景部件的绘制671
22.7.4 游戏中汽车的加载673
22.7.5 游戏中树的绘制技术677
22.7.6 场景中游戏辅助部件的绘制679
22.8 游戏中的碰撞检测及行驶圈数判定681
22.8.1 汽车与公路部件的碰撞检测683
22.8.2 汽车行驶圈数判定685
22.8.3 汽车与可碰撞部件的碰撞检测及其动画实现686
22.9 游戏的优化与改进688