作为引领移动技术潮流的软件平台,Android发布了NDK以支持Java和C的混合开发,使PC游戏可以在Android平台上焕发更多魅力。
本书是为那些在Android游戏开发工作中寻求突破的人准备的。书中不仅通过Space Blaster和Asteroids这两个炫酷 的街机游戏深入介绍了如何从头构建纯Java游戏,更详细展示了如何将PC上的3D经典游戏Doom和Wolfenstein 3D移植到Android,阐释了在Java和C中混合使用OpenGL 3D图形和Java本地接口的技术。每个示例都提供了完全可用的实际源代码,方便读者理解复杂概念。作者语言简练,分析透彻,往往一语中的。在他的引导下,读者能很快学会将Java优雅的面向对象特性与C的强大功能集于一身,为Android平台构建任何类型的游戏。
第1章 欢迎进入Android游戏世界 1
1.1 必备技能 1
1.1.1 扎实的Android基础 1
1.1.2 Linux和Shell脚本的基本知识 3
1.2 需要哪些软件工具 3
1.3 建立环境 4
1.3.1 获得Android源文件 4
1.3.2 提取本地Android库 6
1.3.3 为ARM处理器安装GNU工具链 8
1.3.4 编写定制编译脚本 10
1.4 建立开发环境 17
1.5 已经成功迈出第一步 22
第2章 在Android中编译本地代码 23
2.1 第一个本地Android应用 23
2.1.1 创建AVD 23
2.1.2 创建Android项目 26
2.1.3 应用体系结构 27
2.2 编译和测试共享库 38
2.2.1 缺少符号时的调试 40
2.2.2 在设备上测试动态库 41
2.2.3 用strace调试 42
2.2.4 静态编译 43
2.3 测试本地应用 44
2.4 下一章内容 46
第3章 从头构建Java游戏 47
3.1 Android游戏与Java ME游戏 47
3.2 创建你的第一个Java游戏——Space Blaster 48
3.2.1 了解游戏的体系结构 49
3.2.2 创建项目 50
3.2.3 创建游戏的活动类 51
3.2.4 创建游戏布局 53
3.2.5 实现游戏 58
3.2.6 处理按键和触控事件 66
3.3 在模拟器上测试 69
3.4 下一章内容 70
第4章 Java游戏续篇:多边形的乐趣 71
4.1 关于本章安排 71
4.2 了解在Android中绘制多边形的问题 71
4.3 了解绘制矩形的问题 73
4.4 为Asteroids创建一个Polygon类 75
4.5 为Asteroids创建PolygonSprite类 80
4.6 游戏的体系结构 84
4.7 创建项目 84
4.7.1 创建游戏布局 85
4.7.2 查看资源 86
4.7.3 了解游戏生命期 87
4.7.4 响应按键和触控事件 97
4.8 在模拟器上测试Asteroids 100
4.9 下一章内容 101
第5章 OpenGL 3D图形与JNI混合 102
5.1 移动设备的强大能力 103
5.2 在Java中使用OpenGL 104
5.2.1 Java主活动 106
5.2.2 表面视图 108
5.2.3 GL线程 110
5.2.4 立方体渲染器 113
5.2.5 Cube类 116
5.3 以本地方式使用OpenGL 118
5.3.1 主活动 120
5.3.2 本地接口类 122
5.3.3 对原示例的修改 123
5.3.4 本地立方体渲染器 124
5.3.5 本地立方体 131
5.3.6 编译和运行示例 132
5.4 OpenGL游戏移植到Android的问题 137
5.5 大幕已经拉开 138
第6章 3D射击游戏Ⅰ:面向Android的Wolfenstein 3D 139
6.1 收集工具 139
6.2 Wolf 3D 140
6.3 游戏体系结构 143
6.4 Wolf 3D的Java类 144
6.4.1 创建主要的WolfLauncher类 145
6.4.2 创建Wolf 3D主菜单 149
6.4.3 处理按键和触控事件 150
6.4.4 创建游戏循环 152
6.4.5 建立本地回调 153
6.4.6 创建声音和音乐处理器 155
6.4.7 创建运动控制器处理程序 156
6.4.8 创建运动控制器 158
6.4.9 声音类 165
6.4.10 本地接口类 174
6.5 编写本地层 176
6.5.1 初始化游戏循环 177
6.5.2 用C到Java的回调级联传递消息 179
6.6 编译本地库 185
6.6.1 编写Makefile 186
6.6.2 生成JNI头文件 187
6.7 在模拟器中测试Wolf 3D 187
6.8 下一章内容 189
第7章 3D射击游戏Ⅱ:面向Android的Doom 191
7.1 Java/C组合的无限潜能 191
7.2 将Doom引入移动设备 192
7.3 Doom的游戏体系结构 194
7.4 Java主活动 195
7.4.1 创建处理器 196
7.4.2 游戏布局 197
7.4.3 菜单和选择处理器 199
7.4.4 按键和触控事件处理器 200
7.4.5 本地回调处理器 202
7.4.6 导航控件 205
7.5 音频类 207
7.6 本地接口类 208
7.6.1 回调监听器 208
7.6.2 本地方法 209
7.6.3 C到Java的回调 209
7.7 本地层 212
7.7.1 本地方法实现 212
7.7.2 对原游戏的修改 223
7.8 Doom库(DSO)编译 229
7.9 在模拟器中测试面向Android的Doom 230
7.10 大功告成 232
附录 部署与编译提示 234
本书突出媒介实践和媒介仪式,破解媒介权力的显著特征和隐性伤害,阐述媒介社会化的奥秘,批判媒介中心神话,探究媒介文化底层的
ArcGIS Engine开发从入门到精通 本书特色 本书是一本指导读者快速入门ArcGIS Engine并提高的书籍,着重介绍了ArcGIS Engine的基...
《新时代交通运输领域军民融合深度发展研究》内容简介:全书从历史演进着笔,探讨了深度发展的目标任务、体系建设、运行机制、发展
《上海城市公共开放空间与休闲研究》内容简介:城市公共开放空间是市民日常生活、工作、学习之余接触最多的场所,也是决定城市宜居
D语言是一种通用的系统和应用编程语言,它保持了生成高效代码以及直接访问操作系统API和硬件的能力。《D程序设计语言》是一本介绍
Thisbestsellingtextoncarryingoutresearchinrealworldsituationshasbeenthoroughlyre...
《岛屿来信》内容简介:翁达杰说,如果你从空中俯瞰,这个世界是没有疆界的,地图上那些边界线都不存在。因为对这个世界心存向往,
本书不仅描述了IMS域的体系结构,而且通过实例深入浅出地对IMS的关键概念、主要过程以及典型业务进行了剖析。本书内容远远超越了
《互联网+幼儿园管理》内容简介:本书通俗讲解互联网的基本概念,阐述移动互联网、云计算、智能设备的重要特征,便于读者快速了解互
在刚过去的十年我们见证了共享Web和社会媒体的诞生,它们用各种富有创意的方式将人们联系在一起。目前,成千上万的用户忙着在线玩
《乡土中国》内容简介:该书是费孝通先生的社会学名著,根据其1940年代后期在西南联大和云南大学所讲“乡村社会学”一课的讲义整理
Fromreviewsofthefirstedition:"wellorganized...Recommendedasanintroductorytextfor...
《教你读懂年报》内容简介:本书是解读上市公司年报的专著,涵盖了对上市公司年报所有12个章节的剖析。本书的所有案例都来自上市公
这本鼓舞人心的指南结合新鲜简洁的生活经验,用一两句话和看似简单的图表曲线,教你怎样才能活得更加丰富多彩。书中鼓励你小小地
Delphi编写黑客工具的书作者简介 网名“无敌小龙”,籍贯武汉,联系方式QQ:5450913,BLOG:hi.baidu.com/pespin,对计算机网络
《经典电影如何讲故事》内容简介:好电影都讲了一个好故事,那些遭遇“滑铁卢”、不受市场待见的“烂片”,很大程度上是故事设计存
《JavaScript捷径教程》讲述了JavaScript以及DOM的应用。重点讲解了JavaScript库,并通过实际的示例说明了如何把这些库应用于你的
《绘画的捷径》内容简介:本书共14章,前半部分内容主要包括为什么画、画什么、绘画基础、有效练习、人体造型等内容,使读者有一个
该书系统的介绍了信息设计——这一新兴知识,收录了300多张高清图片。以及荷兰、意大利、日本、中国、英国的信息设计师访谈。会让
SQL基础教程-第2版 本书特色 本书是畅销书《SQL基础教程》第2版,介绍了关系数据库以及用来操作关系数据库的SQL语言的使用方法。书中通过丰富的图示、大量示...