Android游戏开发技术实战详解
2012-8
电子工业出版社
褚尚军
无
本书详细讲解了Android游戏开发技术的基本知识。本书内容新颖、知识全面、讲解详细,全书共分18章,第1章讲解了Android系统的基本知识;第2章讲解了在进行Android开发之前要做的工作;第3章讲解了Android游戏开发的基础知识;第4章讲解了Graphics绘图的基本知识;第5章讲解了OpenGL
ES的基础知识;第6章讲解了纹理映射的基本知识;第7章讲解了绘制不同的三维形状的基本知识;第8章讲解了坐标变换和混合的基本知识;第9章讲解了OpenGL
ES进阶的基本知识;第10章讲解了让游戏和网络接轨的基本知识;第11章讲解了音频开发应用的基本知识;第12章讲解了游戏中的数学和物理的基本知识;第13章讲解了传感器的基本知识;第14章讲解了人工智能的基本知识;第15章讲解了开发益智类游戏——魔塔游戏的基本知识;第16章讲解了开发体育类游戏——激情投篮的基本流程;第17章讲解了开发棋牌类游戏——象棋的基本过程;第18章讲解了开发射击类游戏——抢滩登陆的基本过程。本书面向Android程序开发用户,既可以作为初学者的参考资料,也可以作为向此领域发展的程序员的参考用书。
第1章 Android概述1
1.1 智能手机世界1
1.1.1 何谓智能手机1
1.1.2 主流智能手机系统2
1.2 蓬勃发展的手机游戏产业2
1.3 Android的巨大优势2
1.4 搭建Android应用开发环境3
1.4.1 安装Android SDK的系统
要求3
1.4.2 安装JDK、Eclipse、
Android SDK3
1.4.3 设定Android SDK Home13
1.4.4 验证开发环境13
1.4.5 常见的几个问题15
1.5 Android模拟器19
1.5.1 Android模拟器简介19
1.5.2 模拟器和真机究竟有何区别19
1.5.3 创建Android虚拟设备19
1.5.4 模拟器总结21
第2章 准备工作24
2.1 简析Android安装文件24
2.1.1 Android SDK目录结构24
2.1.2 android.jar及内部结构24
2.1.3 阅读SDK文档需要技巧26
2.1.4 不简单的SDK工具27
2.2 实例教学28
2.3 Android系统架构剖析32
2.3.1 Android体系结构介绍32
2.3.2 Android应用工程文件
组成35
2.3.3 应用程序的生命周期37
第3章 Android游戏开发基础40
3.1 游戏的类型40
3.1.1 ACT动作游戏40
3.1.2 FTG格斗游戏41
3.1.3 STG射击类游戏41
3.1.4 FPS第一人称视角射击
游戏41
3.1.5 SLG策略游戏42
3.1.6 RTS游戏42
3.1.7 RTT游戏42
3.1.8 RPG角色扮演类游戏42
3.1.9 AVG冒险游戏43
3.1.10 SIM游戏44
3.1.11 SPG竞技类游戏44
3.1.12 RAC游戏44
3.1.13 PUZ益智游戏44
3.1.14 MUG音乐游戏45
3.1.15 ETC游戏45
3.2 游戏开发流程45
3.3 五种数据存储方式47
3.3.1 最容易掌握的
SharedPreferences存储47
3.3.2 文件存储49
3.3.3 最常用的SQLite存储50
3.3.4 重要的ContentProvider
存储56
3.3.5 网络存储60
3.4 I/O文件操作61
3.4.1 流62
3.4.2 加快I/O操作效率66
3.4.3 文件处理69
3.4.4 访问操作SD卡71
3.5 游戏框架79
3.5.1 View类79
3.5.2 SurfaceView类81
第4章 平面世界87
4.1 绘图类Graphics87
4.2 设置文本颜色87
4.3 Paint类绘制图像89
4.4 画布类Canvas92
4.5 使用矩形类Rect94
4.6 使用非矢量图形类
NinePatch98
4.7 使用图形变换类Matrix98
4.8 使用位图操作类Bitmap102
4.8.1 Bitmap类的功能102
4.8.2 Bitmap应用实例104
4.9 使用I/O类BitmapFactory109
4.10 使用字体对象类Typeface111
4.11 使用渲染类Shader112
第5章 OpenGL ES基础115
5.1 OpenGL ES介绍115
5.2 OpenGL ES的基本应用116
5.2.1 使用点线法绘制三角形116
5.2.2 索引法绘制三角形122
5.2.3 顶点法绘制三角形127
5.3 实现投影效果129
5.3.1 正交投影129
5.3.2 透视投影130
5.3.3 实现投影效果130
5.4 实现光照效果134
5.4.1 光照基础134
5.4.2 实例应用—开启/关闭
光照136
5.4.3 实例应用—实现定位光
效果141
第6章 纹理映射147
6.1 纹理映射基础147
6.1.1 纹理贴图和纹理拉伸147
6.1.2 Texture Filter纹理过滤148
6.2 纹理映射应用实例149
6.2.1 实现三角形纹理贴图
效果149
6.2.2 实现地月模型效果153
6.2.3 实现纹理拉伸效果160
第7章 绘制不同的三维形状165
7.1 绘制一个圆柱体165
7.2 绘制一个圆环172
7.3 绘制一个抛物面效果176
7.4 绘制一个螺旋面效果179
第8章 坐标变换和混合184
8.1 实现坐标变换184
8.1.1 坐标变换基础184
8.1.2 实现缩放变换184
8.1.3 实现平移变换189
8.2 使用Alpha混合技术191
8.2.1 基本知识191
8.2.2 实现简单混合192
8.2.3 实现光晕和云层效果196
8.2.4 实现滤光器效果201
第9章 OpenGL ES进阶207
9.1 实现摄像机和雾特效功能207
9.1.1 摄像机基础207
9.1.2 雾特效基础208
9.1.3 实现雾特效和摄像机
效果208
9.2 粒子系统219
9.2.1 粒子系统基础219
9.2.2 实现粒子系统效果219
9.3 镜像技术222
9.4 实现旗帜飘扬效果226
第10章 让游戏和网络接轨229
10.1 Socket基础229
10.1.1 TCP和UDP229
10.1.2 Socket基础230
10.1.3 ServerSocket基础231
10.1.4 Socket和ServerSocket
应用232
10.1.5 几个技巧236
10.2 HTTP基础237
10.2.1 HTTP基础237
10.2.2 Android中的HTTP238
10.3 网络应用243
10.3.1 使用Socket实现模拟器和
计算机的通信243
10.3.2 传递HTTP参数246
第11章 音频开发应用251
11.1 AudioManager类251
11.1.1 AudioManager基础251
11.1.2 AudioManager基本应用—
设置短信提示铃声254
11.2 为游戏设置背景音乐258
11.2.1 使用AudioTrack播放
音频文件258
11.2.2 使用MediaPlayer播放
音频文件261
11.2.3 使用SoundPool播放
音频文件274
11.2.4 使用JetPlayer播放音频
文件276
11.2.5 使用AudioEffect处理
音效277
11.3 使用Vibrator类实现振动280
11.3.1 Vibrator类基础280
11.3.2 使用Vibrator实现振动
效果281
第12章 游戏中的数学和物理287
12.1 游戏中的数学287
12.1.1 坐标系287
12.1.2 矢量(向量)290
12.2 游戏中的物理292
12.2.1 基本概念293
12.2.2 物理在游戏中的应用293
12.3 物理碰撞299
12.3.1 几个概念299
12.3.2 完全弹性碰撞300
12.3.3 有损失的碰撞304
12.4 碰撞检测306
12.4.1 碰撞检测基础306
12.4.2 AABB边界框307
第13章 传感器316
13.1 Android传感器系统的结构316
13.2 传感器开发工具318
13.3 各种传感器321
13.3.1 光线传感器322
13.3.2 加速度传感器322
13.3.3 姿态传感器325
13.3.4 距离传感器328
13.4 传感器总结328
第14章 人工智能331
14.1 人工智能介绍331
14.1.1 人工智能简介331
14.1.2 人工智能的两种实现
方法332
14.1.3 游戏中的人工智能332
14.2 人工智能中的图搜索334
14.2.1 深度优先搜索—
DFS334
14.2.2 广度优先搜索—
BFS337
14.2.3 戴克斯特拉算法—
Dijkstra338
14.2.4 A*算法339
14.3 演示人工智能图搜索算法347
第15章 益智类游戏——魔塔游戏364
15.1 魔塔简介364
15.1.1 游戏简介364
15.1.2 发展版本364
15.2 设计游戏框架365
15.2.1 设计界面视图365
15.2.2 屏幕处理366
15.2.3 更新线程368
15.2.4 游戏界面显示369
15.3 绘制处理370
15.3.1 绘制地图370
15.3.2 绘制游戏主角372
15.3.3 绘制对话界面378
15.3.4 战斗界面379
15.3.5 图层管理器381
15.4 实现游戏音效385
第16章 体育类游戏——激情投篮387
16.1 篮球游戏介绍387
16.1.1 篮球游戏介绍387
16.1.2 游戏策划387
16.1.3 策划游戏388
16.1.4 准备工作388
16.2
版权页: 插图: (2)定位光 在自然世界中定向光与定位光是截然不同的,这正如太阳与燃烧的蜡烛之间的区别。但是,在OpenGL ES中,实现定向光与定位光的方法却十分相似。 在OpenGL ES中通过方法来设定定位光,其参数和前面介绍的定向光类似,仅是params参数略有不同。 在定向光中,参数params的最后一个参数设定为0,而在定位光中,该参数设定为1。 在定向光中,参数params的前3个参数设定了光源的向量坐标,而在定位光中,这3个参数代表的是光源的位置。 在定向光中,光的方向为给定的坐标点与原点之间的向量,所以params中的前3个值不能设置为“0,0,0”,而在定位光中,给出的是光源的位置坐标,所以params前3个值可以设置为“0,0,0”。 在方法glLightfv()qb,设置其余参数的方法与前面介绍的相同,在此不再赘述。 2.光源的颜色 颜色是光源的一种重要的属性,在OpenGL ES中,允许把与颜色相关的3个不同参数GL AMBIENT、GL DIFFUSE和GL SPECULAR与任何特定的光源相关联。 (1)GL AMBIENT环境光 AMBIENT表示环境光,代表一个特定的光源在场景中添加的环境光的RGBA强度。默认情况下是不存在环境光的,因为GL AMBIENT的默认值是(0.0,0.0,0.0,1.0)。 在OpenGL ES中,通过方法来设定光源的环境光,各参数的具体说明如下所示。 light:该参数设定OpenGLES中的灯,用GL_LIGHT0~GL_LIGHT7分别表示8盏灯。 如果设置为GL_LIGHT0则表示glLightfv方法中其余的设置都是针对GL_LIGHT0的。 pname:被设置的光源的属性是由pname定义的,对于环境光,设置为GL_AMBIENT。 params:此参数给出的是灯光颜色的R、G、B、A四个色彩通道的值,一般环境光设置的值均较小。 offset:偏移量,设置为0,表示第1个色彩通道的值在数组中的偏移量。 (2)GL_DIFFUSE散射光 因为散射光是来自于某个方向的,所以如果散射光从正面照射物体表面,它看起来就显得更亮一些,反之,如果它斜着从物体表面掠过,则看起来就显得暗一些。但是当散射光撞击物体表面时,它会向四面八方均匀地发散。不管从哪个方向看,散射光看上去总是一样亮。来自某个特定位置或方向的任何光都很可能具有散射成分。 在OpenGL ES平台中,可以通过方法来设定光源的散射光,各参数的具体说明如下所示。
《Android游戏开发技术实战详解》面向Android程序开发用户,既可以作为初学者的参考资料,也可以作为向此领域发展的程序员的参考用书。
无
有益智类游戏、体育类游戏、棋牌类游戏、射击类游戏四类游戏的详细说明与主要代码,内容很详细,就是没有光盘有点可惜,资料在给的网站上不能下载
内容挺充实 对初学者来说挺有用的
各个新新技术都有介绍,不错
说写的不错,入门的。
还不错~可以学习一下~
整体一般,书正在看
实在没想到,用个塑料袋给我发了过来,侧面有开裂,磨损的迹象
全新的书,买了一套学习研究用的,这里买书实惠。
内容不对,我早就退回去了。
讲解细致,实例很有代表性,有值得很多借鉴的地方,发货速度快