目 录
第1 章 欢迎来到Android 世界.............1
1.1 配置开发机...................................1
1.2 下载并安装SDK..........................2
1.3 配置Eclipse ..................................2
1.4 安装原生开发工具包...................5
1.4.1 安装NDK .................................. 6
1.4.2 安装Cygwin .............................. 6
1.5 创建Android 模拟器....................6
1.6 配置真实设备...............................9
1.7 本章小结.....................................10
第2 章 针对手机或平板电脑的
游戏技巧................................. 11
2.1 在Android 中编译原生代码...... 11
2.1.1 创建支持原生代码的Android
项目..........................................13
2.1.2 应用程序的体系结构..............14
2.2 编译共享库.................................25
2.3 调试模拟器.................................26
2.4 Java 对C/C++事件处理的
封装.............................................27
2.4.1 独立处理音频..........................27
2.4.2 级联视频事件..........................32
2.5 多点触摸.....................................37
2.5.1 MultiTouchGesture...................37
2.5.2 MultiTouchScreen ....................39
2.5.3 TestActivity ..............................41
2.6 蓝牙控制器(Zeemote) ................42
2.7 本章小结.....................................46
第3 章 更多OpenGL 与JNI
游戏技巧................................ 49
3.1 移动设备的动力.........................50
3.2 Java 方式的OpenGL..................51
3.2.1 创建项目..................................51
3.2.2 Java 版本的主Activity ............54
3.2.3 surface 视图..............................55
3.2.4 GL 线程....................................58
3.2.5 立方体渲染器..........................61
3.2.6 Cube 类.....................................64
3.3 原生方式的OpenGL ..................66
3.3.1 主Activity ................................68
3.3.2 原生接口类..............................70
3.3.3 修改原示例..............................71
3.3.4 原生立方体渲染器..................72
3.3.5 原生立方体类..........................78
3.3.6 编译和运行示例......................79
3.4 通过OpenGL ES 混合模式
缩放视频缓冲区.........................82
3.4.1 为什么使用混合缩放..............83
3.4.2 初始化surface..........................85
3.4.3 绘制到纹理..............................86
3.4.4 当图像的尺寸不是2 的幂时
会发生什么..............................89
3.5 本章小结.....................................94
第4 章 OpenGL ES 2.0 的高效图形... 95
4.1 OpenGL ES 2.0 与Android ........95
4.1.1 着色器......................................96
4.1.2 GLSL ........................................96
4.1.3 剖析着色器..............................98
Android 4 游戏高级编程(第2 版)
XVI
4.2 在Android 中调用
OpenGL ES 2.0 .........................101
4.3 二十面体项目...........................102
4.3.1 定义形状............................... 102
4.3.2 处理项目............................... 104
4.3.3 原生二十面体........................112
4.4 添加“滑动”和多点触摸的“捏”
缩放功能................................... 119
4.5 编译与运行...............................122
4.6 本章小节...................................123
第5 章 3D 射击游戏:Doom............125
5.1 组合使用Java/C,功能
无极限.......................................126
5.2 将Doom 移植到移动设备.......127
5.3 Doom 游戏的体系结构............129
5.4 Java 层的主Activity.................130
5.4.1 创建处理程序....................... 131
5.4.2 游戏布局............................... 132
5.4.3 菜单和选择项处理程序....... 134
5.4.4 按键和触摸事件处理程序... 135
5.4.5 原生回调处理程序............... 137
5.4.6 导航控件............................... 140
5.5 独立处理音频格式...................142
5.6 原生接口类...............................143
5.6.1 回调监听器........................... 143
5.6.2 原生方法............................... 144
5.6.3 C 到Java 的回调.................. 144
5.7 原生层.......................................147
5.7.1 原生方法的实现................... 147
5.7.2 对原始游戏进行修改........... 159
5.8 使用NDK 编译Doom .............165
5.9 在模拟器中测试Doom............167
5.10 本章小结.................................169
第6 章 3D 射击游戏:Quake...........171
6.1 一些关于Quake 的术语...........171
6.2 代码重用的威力:Quake 中的
新代码少于500 行...................172
6.3 软件渲染是合理解决方案吗...174
6.4 Quake 的Android 架构............179
6.4.1 Java OpenGL 渲染器架构.... 180
6.4.2 独立处理音频格式............... 185
6.4.3 处理键盘事件....................... 187
6.4.4 处理触摸事件....................... 189
6.4.5 游戏的启动Activity ............. 192
6.5 原生Quake 引擎必需的改动....193
6.5.1 视频处理程序的改动........... 194
6.5.2 处理X 轴旋转(pitch)和Y 轴
旋转(yaw).............................. 196
6.5.3 处理前进和横向运动........... 197
6.5.4 音频处理程序的改动........... 197
6.5.5 修复游戏循环....................... 200
6.6 在设备上运行Quake................202
6.7 本章小结...................................208
第7 章 3D 射击游戏:QuakeⅡ....... 209
7.1 代码回顾...................................209
7.2 逃离Java 堆的束缚..................210
7.3 让QuakeⅡ引擎在Android 中
工作...........................................211
7.3.1 代码的可重用性.................. 211
7.3.2 当发生致命错误时如何
处理...................................... 221
7.3.3 OpenGL 立即模式问题....... 223
7.3.4 视频处理程序...................... 224
7.4 使用NDK 编译QuakeⅡ .........228
7.5 在设备或模拟器中运行游戏...231
7.6 QuakeⅡ在多种设备中的性能
表现...........................................234
7.7 本章小结...................................234
附录 部署和编译技巧....................... 237
· · · · · · (
收起)