原书名: Pro Android Games 精通Android游戏开发 原出版社: Apress 作者: (美)Vladimir Silva 第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 ### 精通Android游戏开发知识点总结 #### 1. 欢迎进入Android游戏世界 ##### 1.1 必备技能 - **扎实的Android基础**:掌握Android SDK的使用、熟悉Android应用程序的基本结构及其生命周期管理。这部分内容包括Activity、Service、BroadcastReceiver等组件的使用。 - **Linux和Shell脚本的基本知识**:因为Android系统基于Linux内核,所以在进行游戏开发时,了解Linux操作系统的基础知识以及Shell脚本编写技巧是十分必要的。 ##### 1.2 需要哪些软件工具 - **Android Studio**:官方推荐的集成开发环境(IDE),提供了丰富的功能支持Android应用程序的开发。 - **Android SDK**:包含了开发Android应用所需的库文件、文档和其他工具。 - **NDK (Native Development Kit)**:用于开发本地代码的工具包,能够使开发者使用C或C++来编写高性能的应用程序部分。 ##### 1.3 建立环境 - **获得Android源文件**:可以通过官方渠道下载最新的Android源码,这有助于理解底层实现细节,并且可以在必要时进行定制开发。 - **提取本地Android库**:为了支持C/C++代码的编译,需要从SDK中提取出相应的本地库文件。 - **为ARM处理器安装GNU工具链**:由于大部分Android设备使用的是ARM架构的处理器,因此需要安装特定版本的GNU工具链来进行编译。 - **编写定制编译脚本**:根据项目需求编写脚本来自动化编译过程,提高开发效率。 ##### 1.4 建立开发环境 - 完成上述步骤后,即可设置好开发环境,开始进行游戏开发工作。 #### 2. 在Android中编译本地代码 ##### 2.1 第一个本地Android应用 - **创建AVD (Android Virtual Device)**:用于模拟真实的Android设备,以便进行调试和测试。 - **创建Android项目**:通过Android Studio创建一个新的项目,并配置相关的编译选项。 - **应用体系结构**:明确项目的模块划分,以及各个模块之间的交互逻辑。 ##### 2.2 编译和测试共享库 - **调试缺少符号**:当遇到编译错误或者警告时,需要使用调试工具来定位问题所在。 - **在设备上测试动态库**:将编译好的动态库部署到真实设备上进行测试,以验证其功能是否符合预期。 - **使用strace调试**:通过strace工具来追踪系统调用,帮助查找和解决问题。 - **静态编译**:除了动态链接库外,还可以选择静态编译的方式来构建应用程序,这样可以减少依赖并提高安全性。 ##### 2.3 测试本地应用 - 进行一系列的功能性和性能测试,确保应用的质量和稳定性。 #### 3. 从头构建Java游戏 ##### 3.1 Android游戏与Java ME游戏 - 讨论Android平台相较于Java ME平台的优势,如更强大的硬件支持、更丰富的API和更好的用户界面设计。 ##### 3.2 创建你的第一个Java游戏——Space Blaster - **了解游戏的体系结构**:学习如何设计游戏的基本架构,包括游戏循环、输入处理和图形渲染等核心部分。 - **创建项目**:在Android Studio中创建新项目,并配置必要的设置。 - **创建游戏的活动类**:定义游戏的主要逻辑和行为。 - **创建游戏布局**:设计游戏界面的布局,包括按钮、文本框等UI元素。 - **实现游戏**:具体实现游戏的逻辑和规则,如玩家控制、敌机生成等。 - **处理按键和触控事件**:响应用户的输入操作,实现游戏中的各种动作。 - **在模拟器上测试**:利用Android模拟器来运行和测试游戏。 #### 4. Java游戏续篇:多边形的乐趣 ##### 4.1 关于本章安排 - 介绍本章将探讨的内容概述,主要是关于如何在Android游戏中绘制多边形。 ##### 4.2 了解在Android中绘制多边形的问题 - 探讨在Android平台上绘制多边形所面临的挑战,如性能优化、图形兼容性等。 ##### 4.3 了解绘制矩形的问题 - 分析绘制矩形时可能遇到的技术难题,例如抗锯齿、填充模式等。 ##### 4.4 为Asteroids创建一个Polygon类 - 设计一个专门用于表示多边形的类,实现多边形的基本操作,如旋转、缩放等。 ##### 4.5 为Asteroids创建Polygonsprite类 - 构建一个更高级别的类,用于处理游戏中的多边形精灵对象。 ##### 4.6 游戏的体系结构 - 继续深入讨论游戏的整体架构,如何组织和管理游戏的各种资源和逻辑。 #### 5. OpenGL 3D图形与JNI混合 ##### 5.1 移动设备的强大能力 - 讨论现代移动设备在图形处理方面的能力,以及它们如何支持复杂的3D游戏。 ##### 5.2 在Java中使用OpenGL - **Java主活动**:定义游戏的主要逻辑入口点。 - **表面视图**:用于显示OpenGL渲染的内容。 - **GL线程**:负责OpenGL渲染任务的执行。 - **立方体渲染器**:实现一个简单的3D立方体渲染器。 - **Cube类**:定义立方体的基本属性和行为。 ##### 5.3 以本地方式使用OpenGL - **本地接口类**:用于Java和C/C++代码之间的通信。 - **本地立方体渲染器**:使用C/C++实现更高效的3D图形渲染。 - **本地立方体**:创建一个本地版本的立方体类。 ##### 5.4 OpenGL游戏移植到Android的问题 - 探讨将原有的OpenGL游戏移植到Android平台时可能遇到的困难和解决方案。 #### 6. 3D射击游戏Ⅰ:面向Android的Wolfenstein 3D ##### 6.1 收集工具 - 准备所需的开发工具和资源,如游戏引擎、音频文件等。 ##### 6.2 Wolf 3D - 详细介绍Wolfenstein 3D游戏的特点及其在Android上的实现方法。 ##### 6.3 游戏体系结构 - 描述Wolfenstein 3D游戏的整体架构设计。 ##### 6.4 Wolf 3D的Java类 - **创建主要的WolfLauncher类**:作为游戏的启动入口。 - **创建Wolf 3D主菜单**:实现游戏的菜单系统。 - **处理按键和触控事件**:定义如何响应用户的输入操作。 - **创建游戏循环**:实现游戏的主要逻辑循环。 - **建立本地回调**:设置Java与本地代码之间的回调机制。 - **创建声音和音乐处理器**:处理游戏中的音效和背景音乐。 - **创建运动控制器处理程序**:负责游戏中的物理运动控制。 - **创建运动控制器**:实现具体的物理运动逻辑。 - **声音类**:封装声音处理的相关功能。 - **本地接口类**:用于Java和C/C++代码之间的通信。 - **编写本地层**:使用C/C++实现高性能的游戏逻辑。 - **编译本地库**:生成可以在Android平台上运行的本地库文件。 - **在模拟器中测试Wolf 3D**:进行初步的功能性和性能测试。 #### 7. 3D射击游戏Ⅱ:面向Android的Doom ##### 7.1 Java/C组合的无限潜能 - 讨论Java与C/C++结合在游戏开发中的优势。 ##### 7.2 将Doom引入移动设备 - 介绍如何将经典的Doom游戏移植到Android平台上。 ##### 7.3 Doom的游戏体系结构 - 分析Doom游戏的整体架构设计。 ##### 7.4 Java主活动 - **创建处理器**:定义各种处理器来处理不同的任务。 - **游戏布局**:设计游戏的用户界面。 - **菜单和选择处理器**:实现游戏中的菜单系统。 - **按键和触控事件处理器**:响应用户的输入操作。 - **本地回调处理器**:处理Java与本地代码之间的通信。 - **导航控件**:实现游戏中的导航功能。 ##### 7.5 音频类 - 实现游戏中的音频播放功能。 ##### 7.6 本地接口类 - **回调监听器**:设置Java与本地代码之间的回调机制。 - **本地方法**:定义本地代码中可以被Java调用的方法。 - **C到Java的回调**:实现本地代码向Java传递数据的机制。 ##### 7.7 本地层 - **本地方法实现**:具体实现本地代码中的功能。 - **对原游戏的修改**:针对Android平台进行必要的代码调整。 ##### 7.8 Doom库(DSO)编译 - 生成可以在Android平台上运行的动态链接库文件。 ##### 7.9 在模拟器中测试面向Android的Doom - 对移植后的Doom游戏进行全面的测试,确保其稳定性和流畅度。 通过以上章节的学习和实践,读者将能够掌握从基础到高级的Android游戏开发技能,包括Java编程、OpenGL图形渲染、本地代码编写等多个方面。无论是初学者还是有经验的开发者,都能够从中获得宝贵的知识和经验。





















剩余320页未读,继续阅读

- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于PID算法的电机转速控制系统的设计.doc
- 2023年数据库四级.doc
- 2023年计算机考试题模拟新版.doc
- 鼎亚数字小区数字高清网络监控系统设计方案.doc
- SSLVPN使用手册.doc
- 软件有限公司文档评审流程.docx
- 民办高校转型与校企项目结合的电气自动化实践教学体系研究优秀获奖科研论文.docx
- 高速光模块在通讯网络的应用解决方案.doc
- 计算机培训心得体会的范文.docx
- 企业实现网络营销策略具有重要意义.docx
- 第二章-电子商务经营模式.ppt
- 人工神经网络专业知识.pptx
- 统考计算机选择题(含答案).doc
- 互联网UI设计师英文简历模板.docx
- 公司三方物流业务信息化解决方案.docx
- 云计算平台搭建方案.doc



- 1
- 2
- 3
- 4
- 5
- 6
前往页