作为引领移动技术潮流的软件平台,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
当技术使整个社会突变到移动互联时代,实现了社群、人人实时在线等质变,企业应该如何在移动互联时代实现生存、进化?。《社群经
3ds MAX三维效果图制作案例教程 内容简介 本书是一本面向3DS MAX效果图制作初学者的书,本书根据3ds Max 9软件和效果图制作的特点,,由优秀效果...
学习GNUEmacsGNUEmacs是Emacs编辑器家族中最受欢迎、传播范围最广、也是最强大和最灵活的UNIX文本编辑器。与其他文本编辑器的重要
《网络安全态势感知:提取、理解和预测》内容简介:本书分为四个部分:基础知识、态势提取、态势理解和态势预测。每章都会重点讨论
如果三十多年前艾斯林格没有遇见乔布斯,你我今天看到的iPhone和MacBook也许不是现在这个样子,当然,也许根本就没有这么酷的手机
《图解室内设计分析》:建筑师和室内设计师在今天这个读图时代,每天与大量的视觉信息打交道,图像的瞬时显示成了设计师看图的主
《这里是故宫》内容简介:只露声音的宫殿君称得上是行走的“故宫资料库”,他以特别“接地气”的方式讲述故宫的建筑黑科技、超级神
高性能集群计算:编程与应用 第二卷 内容简介 本书全面系统地介绍了高性能集群计算技术的概念、理论研究和工程实践成果。全书由两卷构成:系统与结构(**卷)和编程与...
《Python Flask Web开发入门与项目实战》内容简介:本书从Flask框架的基础知识讲起,逐步深入到使用Flask进行Web应用开发实战。其中
《现代数字信号处理》介绍了现代数字信号处理的主要内容。首先概述了离散时间信号处理和离散随机信号分析的基础内容,主要是一些
《现代电信百科》是一部电信专业普及读物。本书正文由基础知识篇、技术业务篇、经营管理篇和时尚未来篇等四部分组成,内容涵盖现
《往往醉后见天真:回忆傅抱石》内容简介:傅抱石(1904—1905)是我国现代著名国画家、美术史研究和绘画理论家,其艺术成就在中国
《道教文学十讲(精)》内容简介:孙昌武先生,一九三七年生,辽宁省营口市人。南开大学教授,曾在亚欧和中国港台地区多所大学担任
《元宇宙超入门》内容简介:我们每天都在数字化生活之中。元宇宙,是数字化经济与生活的终极形态。元宇宙=实体世界数字世界。临界点
《明亮的泥土:颜料发明史(天际线丛书)》内容简介:每位艺术家,都与他那个时代的颜色有一份属于自己的约定。一部揭示艺术、科学
《偶遇(2021版)》内容简介:这是鲁豫与他人的心灵偶遇,也是与这个时代的偶遇。书中,鲁豫久违地打开自己,拥抱世界,以半生的阅
《Hadoop实战》作为云计算所青睐的分布式架构,Hadoop是一个用Java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据
《素茶书》内容简介:茶是中国人的生活之需,也是不可或缺的精神饮料。它平易亲和又清雅高远,与文人的性情十分贴合。"大家茶坊"丛
《国外电子与通信教材系列·数字与模拟通信系统(第6版)(英文版)》在前五版的基础上改编而成,系统地介绍了现代通信系统的基本理论
《神经网络气象预报建模理论方法与应用》主要介绍了神经网络主要模型的基本理论和方法、神经网络的各种短期气候预测模型、时间序