第1篇 入门篇 2
第1章 欢迎来到Android世界 2
1.1智能手机的历史 2
1.1.1 Linux 3
1.1.2 Symbian 4
1.1.3 Palm OS 5
1.1.4 Windows Mobile 6
1.1.5 BlackBerry OS 8
1.1.6 iOS 8
1.1.7 Android 10
1.2 Android概述 10
1.3 Android的发展历史 12
1.4 Android的系统架构 14
1.5 Android的未来 17
1.6小结 18
第2章 开始之前的准备 20
2.1 Android系统基础知识 20
2.1.1 Android应用程序的运行机制 21
2.1.2 Android应用程序组件 22
2.2如何获得帮助 25
2.2.1查阅帮助文档 26
2.2.2官方技术论坛 29
2.3那些必不可少的工具 30
2.3.1需要的操作系统 30
2.3.2需要的软件环境 31
2.3.3如何下载Android SDK 31
2.3.4用什么来写代码 31
2.3.5与游戏有关的工具 32
2.4小结 32
第3章 建立Android开发环境 35
3.1如何设置Eclipse 35
3.2配置开发环境 36
3.3如何更新SDK 39
3.4创建一个新项目 41
3.5小结 43
第4章从HelloWorld开始 45
4.1项目的布局 45
4.2项目工程的组成 46
4.2.1各个目录的含义 46
4.2.2 Android Manifest文件 52
4.2.3 Android运行的核心组件 56
4.3选择不同的SDK 59
4.4编译运行 60
4.4.1基本编译方法 60
4.4.2 Ant脚本编译 61
4.4.3运行项目 76
4.5小结 78
第5章 如何调试程序 79
5.1调试之前的准备 79
5.1.1建立AVD 79
5.1.2 AVD的属性配置与操作 82
5.1.3 AVD与真机的区别 84
5.1.4 DDMS的介绍 84
5.1.5 DDMS的界面 85
5.1.6 DDMS工作原理 87
5.2调试方法 87
5.2.1断点调试 88
5.2.2日志调试 90
5.2.3控制台调试 92
5.3手机特性调试 93
5.3.1来电调试 93
5.3.2其他调试 94
5.4模拟器的文件结构 95
5.5小结 96
第2篇 提高篇 98
第6章 游戏开发之前的准备 98
6.1如何确立项目 98
6.1.1游戏创意 98
6.1.2 哪些人是你的客户 99
6.1.3确定游戏的类型 100
6.1.4确定人员的组成 101
6.1.5其他辅助人员 102
6.1.6确定预期的效果 103
6.2何为游戏性 104
6.2.1用户黏性 104
6.2.2游戏的节奏 106
6.3独立游戏制作人 106
6.4如何制定开发计划 107
6.5小结 111
第7章 引擎——游戏的核心 113
7.1游戏的基本框架 113
7.2引擎的历史 115
7.2.1何为优秀的引擎 116
7.2.2知名的引擎介绍 118
7.2.3 Android平台的游戏引擎 121
7.3引擎中的模块 123
7.3.1没有标准的引擎 123
7.3.2按需配置模块 124
7.3.3运行引擎的结构 124
7.4引擎的层次 126
7.4.1基本内核层 126
7.4.2功能层 127
7.4.3表现层 129
7.5代码的规范 131
7.6小结 131
第8章 从内核构建开始 133
8.1建立游戏框架 133
8.1.1为什么用SurfaceView 134
8.1.2使用SurfaceView 135
8.1.3 Activity的生命周期 137
8.1.4脏矩形技术 141
8.2游戏的生命周期 142
8.2.1从哪里开始 143
8.2.2游戏的循环 144
8.2.3有限状态机制 145
8.2.4从哪里结束 146
8.3绘制,内核中的关键 147
8.3.1刷新率的决定因素 147
8.3.2几何图形绘制 149
8.3.3图片绘制 150
8.4小结 151
第9章 游戏需要具备的功能 152
9.1游戏中的逻辑处理 152
9.1.1线程中的逻辑循环 153
9.1.2逻辑轮询 153
9.1.3个体与群体 155
9.2用户输入 156
9.2.1接口设计 157
9.2.2事件类的实现 160
9.3音乐和音效处理 164
9.3.1音乐和音效的区别 164
9.3.2声音的状态机制 164
9.3.3音乐处理类的实现 166
9.3.4音效处理类的实现 168
9.3.5声音处理类的实现 169
9.4升级绘制模块 171
9.4.1 Android API中绘图类的封装 171
9.4.2绘制接口的实现 172
9.4.3文字绘制 176
9.5文件操作模块 177
9.5.1 SharedPreferences处理方式 178
9.5.2资源的整理 179
9.5.3文件读取与存储 180
9.6多语言版本 181
9.7小结 183
第10章 展现给玩家的世界 186
10.1游戏画面的层次 186
10.1.1世界 186
10.1.2场景 187
10.1.3层次 192
10.1.4精灵 194
10.2实现游戏内容 197
10.2.1游戏菜单界面 199
10.2.2游戏画面的构成 204
10.2.3有生命力的物体 211
10.2.4动画效果 215
10.3游戏的规则 218
10.3.1什么是规则 218
10.3.2如何制订规则 218
10.4小结 220
第11章 更精彩的游戏 222
11.1为游戏添加声音 222
11.1.1背景音乐 223
11.1.2游戏音效 224
11.2积分排行榜 224
11.2.1显示界面 225
11.2.2数据保存 230
11.3多种语言版本 231
11.4智能的UFO 233
11.5工具的使用 238
11.5.1工具的产生 238
11.5.2如何制作工具 239
11.5.3工具的使用 239
11.6 XML文件 243
11.6.1 XML数据文件 243
11.6.2解析XMl文件 244
11.7展现游戏地图背景 246
11.8小结 251
第12章 精益求精 254
12.1手持平台特有的功能 254
12.1.1加速度传感器 254
12.1.2需要定位服务吗 258
12.1.3拍下你所看到的 260
12.2性能与优化 264
12.2.1是什么拖慢了游戏 265
12.2.2不得不做出抉择 265
12.2.3优化的方向在哪里 266
12.3如何防止游戏崩溃 267
12.3.1小心内存泄露 267
12.3.2如何避免内存泄漏 268
12.4异常处理 270
12.5小结 271
第13章 将游戏推向市场 274
13.1上市之前的准备 274
13.1.1包从哪里来 274
13.1.2属于你的签名 276
13.1.3签名应用程序 277
13.1.4用命令语句来打包 278
13.2版本的选择 280
13.2.1免费版与收费版 281
13.2.2是否加入广告 282
13.2.3广告代理选择 283
13.2.4为游戏加入广告 283
13.3准备上市 286
13.3.1市场的选择 286
13.3.2提交标准 287
13.4上市之后,要做些什么 288
13.4.1如何宣传游戏 288
13.4.2接纳用户反馈 289
13.4.3及时地更新 290
13.4.4价格决定销量 290
13.5小结 291
第3篇 精通篇 295
第14章重新开始 295
14.1为什么重新开始 295
14.2从哪里开始 295
14.2.1什么是JNI 296
14.2.2 NDK的开发方式 296
14.3配置开发环境 297
14.3.1 Cygwin的安装 297
14.3.2测试Cygwin环境 299
14.3.3 NDK安装与配置 300
14.4掌握JNI和NDK 302
14.4.1 JNI的使用方法 302
14.4.2 NDK编译运行 306
14.4.3如何调试 310
14.5小结 311
第15章 崭新的3D世界 314
15.1建立3D世界 314
15.1.1真实的世界是怎样的 315
15.1.2虚拟的世界 315
15.1.3什么是渲染器 317
15.2 OpenGL ES介绍 317
15.2.1 OpenGL的历史 318
15.2.2技术支持 320
15.3 Open GL在Android中的应用 321
15.3.1 Native与Java开发区别 321
15.3.2 Activity的选择 322
15.3.3如何使用GLSurfaceView 323
15.3.4 OpenGL渲染器 324
15.4进入3D世界 326
15.4.1 OpenGL基础 326
15.4.2 OpenGL基本功能 328
15.4.3 OpenGL程序库 329
15.4.4 3D世界的投影 335
15.4.5 OpenGL初始化 337
15.4.6绘制盒子图形 342
15.5小结 344
第16章 制作3D游戏 347
16.1建立工程 347
16.2 Android平台的游戏表现 348
16.2.1游戏生命周期 348
16.2.2链接本地化的原生库 349
16.3 OpenGL的内核 349
16.3.1初始化 350
16.3.2三维世界投影 351
16.3.3球体的模型 354
16.3.4三维空间里的光照 357
16.3.5物体模型的纹理贴图 360
16.4用户交互 364
16.5球体封装类 366
16.6如何写编译文件 371
16.7小结 372
第17章 人工智能 376
17.1人工智能的历史 376
17.2你追我跑的游戏世界 377
17.2.1它不是木头 377
17.2.2别那么傻 378
17.2.3一定要追上 379
17.3制定规则 382
17.3.1有限状态机 383
17.3.2自动巡逻 387
17.4模糊逻辑技术 389
17.4.1就是测不准 390
17.4.2模糊状态机 391
17.5智能寻路 392
17.5.1为什么寻路 392
17.5.2一定要用A*吗 396
17.6小结 400
第18章 物理碰撞 402
18.1真实世界的物理 402
18.2基本牛顿力学 403
18.3游戏中的物理 404
18.3.1重力世界 405
18.3.2刚体与软体 412
18.4游戏中的碰撞检测 413
18.4.1点与线组成的画面 414
18.4.2包容体的概念 417
18.4.3 AABB 418
18.4.4 OBB 419
18.4.5栅格化检测 421
18.5物理规律与碰撞检测的结合 422
18.6小结 424