第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 SDK 3
1.4.3 设定Android SDK Home 13
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 绘图类Graphics 87
4.2 设置文本颜色 87
4.3 Paint类绘制图像 89
4.4 画布类Canvas 92
4.5 使用矩形类Rect 94
4.6 使用非矢量图形类NinePatch 98
4.7 使用图形变换类Matrix 98
4.8 使用位图操作类Bitmap 102
4.8.1 Bitmap类的功能 102
4.8.2 Bitmap应用实例 104
4.9 使用I/O类BitmapFactory 109
4.10 使用字体对象类Typeace 111
4.11 使用渲染类Shader 112
第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和UDP 229
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中的HTTP 238
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 深度优先搜索——DFS 334
14.2.2 广度优先搜索——BFS 337
14.2.3 戴克斯特拉算法——Dijkstra 338
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 项目架构 389
16.2.1 总体架构 389
16.2.2 规划类 389
16.3 具体编码 391
第17章 棋牌类游戏——中国象棋 412
17.1 棋牌游戏介绍 412
17.2 准备工作 413
17.3 项目架构 413
17.3.1 总体架构 413
17.3.2 规划类 414
17.4 具体编码 415
17.4.1 实现控制类 415
17.4.2 欢迎界面类 416
17.4.3 菜单界面类 420
17.4.4 游戏帮助类 422
17.4.5 游戏界面框架类 424
17.4.6 象棋走法类 432
17.4.7 思考时间类 433
17.4.8 走法规则类 433
第18章 射击类游戏——抢滩登陆 439
18.1 射击游戏介绍 439
18.1.1 射击游戏介绍 439
18.1.2 抢滩登陆介绍 440
18.1.3 准备工作 440
18.2 项目架构 441
18.2.1 游戏流程 441
18.2.2 总体架构 441
18.2.3 规划类 442
18.3 具体编码 443
18.3.1 游戏控制类 443
18.3.2 定义常量类 446
18.3.3 编写游戏菜单类 451
18.3.4 菜单动画类 455
18.3.5 编写整体框架类 457
18.3.6 编写绘制灯塔类 465