移动平台开发书库 Android游戏开发从入门到精通
作者:王玉芹等编著
出版时间:2016
内容简介
《Android游戏开发从入门到精通》以Android系统中游戏的应用程序开发为主题,结合真实的案例详细介绍了在Android系统中开发游戏项目所需要的基本知识和具体流程。《Android游戏开发从入门到精通》内容分为四篇,共16章,分别讲解了Android系统概述、Android核心框架分析、Android游戏开发基础、绘制游戏角色、使用OpenGL ES构建三维游戏、为游戏添加网络功能、为游戏增加音频特效、触屏游戏事件处理、为游戏设置素材资源、Android传感器应用开发详解、游戏中的人工智能算法、游戏中的Box2D 物理引擎,并通过四个大型综合实例,分别介绍了开发大型益智类游戏、体育类游戏、桌面类游戏和棋牌类游戏的基本流程。
《Android游戏开发从入门到精通》内容详实、实例丰富、案例真实,适用于从事Android程序开发的不同层次的读者,既可作为初学者的学习用书,也可作为向Android程序开发领域发展的程序员参考用书。
目录
前言
第一篇 基础知识篇
第1章 Android系统概述
1.1 智能手机系统介绍
1.1.1 何谓智能手机
1.1.2 看当前主流的智能手机系统
1.2 Android 5.0的特点
1.3 Android的巨大优势
1.3.1 优势一——系出名门
1.3.2 优势二——强大的开发团队
1.3.3 优势三——诱人的奖励机制
1.3.4 优势四——开源
1.4 搭建Android应用开发环境
1.4.1 安装Android SDK的系统要求
1.4.2 安装JDK
1.4.3 获取并安装Eclipse和Android SDK
1.4.4 安装ADT
1.4.5 设定Android SDK Home
1.4.6 验证开发环境
1.4.7 创建Android虚拟设备(AVD)
1.4.8 启动AVD模拟器
第2章 Android核心框架分析
2.1 Android安装文件介绍
2.1.1 Android SDK目录结构
2.1.2 android.jar及内部结构
2.1.3 阅读SDK帮助文档
2.1.4 常用的SDK工具
2.2 剖析Android系统架构
2.2.1 Android体系结构介绍
2.2.2 Android应用工程文件组成
2.3 简述五大组件
2.3.1 用Activity表现界面
2.3.2 用Intent和IntentFilters实现切换
2.3.3 Service服务
2.3.4 用BroadcastIntentReceiver发送广播
2.3.5 用ContentProvider存储数据
2.4 进程和线程
2.4.1 先看进程
2.4.2 再看线程
2.4.3 应用程序的生命周期
2.5 第一个Android程序
第二篇 核心技术篇
第3章 Android游戏开发基础
3.1 开发Android游戏的基本流程
3.2 Android中的数据存储方式
3.2.1 SharedPreferences存储
3.2.2 文件存储
3.2.3 SQLite存储
3.2.4 ContentProvider存储
3.2.5 网络存储
3.3 访问操作SD卡(手机中的存储卡)
3.3.1 解决思路
3.3.2 具体实现
第4章 绘制游戏角色
4.1 绘图类Graphics简介
4.2 使用类Color设置文本颜色
4.2.1 类Color基础
4.2.2 使用类Color更改文字的颜色
4.3 使用类Paint绘制图像
4.3.1 类Paint基础
4.3.2 使用类Color和类Paint实现绘图处理
4.4 使用画布类Canvas
4.4.1 类Canvas基础
4.4.2 使用类Canvas绘制有填充颜色的图形
4.5 使用矩形类Rect
4.6 类NinePatch基础
4.7 使用图形变换类Matrix
4.7.1 类Matrix基础
4.7.2 使用类Matrix实现图片缩放功能
4.8 使用位图操作类Bitmap
4.8.1 Bitmap类的功能
4.8.2 使用类Bitmap模拟水纹效果
4.8.3 使用类Bitmap旋转图片
4.9 使用I/O类BitmapFactory
4.9.1 类BitmapFactory基础
4.9.2 使用类BitmapFactory获取图片的宽和高
4.10 使用字体对象类Typeface
4.11 使用渲染类Shader
4.11.1 类Shader基础
4.11.2 使用类Shader渲染不同的图像
第5章 使用OpenGL ES构建三维游戏
5.1 OpenGL ES介绍
5.1.1 OpenGL ES 3.1
5.1.2 Android全面支持OpenGL ES 3.1
5.2 OpenGL ES的基本应用
5.2.1 使用点线法绘制三角形
5.2.2 使用索引法绘制三角形
5.3 使用OpenGL ES实现投影效果
5.3.1 正交投影
5.3.2 透视投影
5.3.3 正交投影和透视投影的区别
5.3.4 实现投影效果实例
5.4 使用OpenGL ES实现光照效果
5.4.1 什么是光照
5.4.2 实现“开启/关闭”光照功能
5.5 为游戏增加纹理特效
5.5.1 纹理映射的作用
5.5.2 实现三角形纹理贴图效果
5.6 创建立体图形角色
5.7 三维游戏角色坐标定位
5.7.1 什么是坐标变换
5.7.2 实现缩放变换
5.8 为游戏增加3Ds Max特效
5.8.1 实现摄像机和雾特效效果
5.8.2 实现粒子系统效果
第6章 为游戏添加网络功能
6.1 Socket技术介绍
6.1.1 Socket基础
6.1.2 ServerSocket基础
6.2 使用HTTP超文本传输协议
6.2.1 HTTP基础
6.2.2 Android中的HTTP
6.2.3 实战演练——传递HTTP参数
6.3 下载、上传数据
6.3.1 下载网络中的图片数据
6.3.2 下载网络中的JSON数据
6.3.3 使用GET方式上传数据
第7章 为游戏增加音频特效
7.1 使用类AudioManager打造游戏声效
7.1.1 类AudioManager基础
7.1.2 设置短信提示铃声
7.2 为游戏设置背景音乐
7.2.1 使用AudioTrack播放音频特效
7.2.2 使用MediaPlayer播放音频特效
7.2.3 使用网络中的MP3作为游戏音效
7.2.4 使用SoundPool播放音频特效
7.3 实现振动特效
7.3.1 类Vibrator的基础
7.3.2 将铃声设置为游戏音效
第8章 触屏游戏事件处理
8.1 基于监听的事件处理
8.1.1 监听处理模型中的三种对象
8.1.2 Android系统中的监听事件
8.1.3 实现事件监听器的方法
8.2 基于回调的事件处理
8.2.1 Android事件监听器的回调方法
8.2.2 基于回调的事件传播
8.2.3 重写onTouchEvent方法响应触摸屏事件
8.3 响应的系统设置的事件
8.3.1 Configuration类详解
8.3.2 重写onConfigurationChanged响应系统设置更改
8.4 Handler消息传递机制
第9章 为游戏设置素材资源
9.1 Android的资源类型
9.2 如何使用资源
9.2.1 在Java代码中使用资源清单项
9.2.2 在Java代码中访问实际资源
9.2.3 在XML代码中使用资源
9.3 “/res/values”目录
9.3.1 定义颜色值
9.3.2 字符串资源
9.3.3 颜色资源文件
9.3.4 尺寸资源文件
9.3.5 数组资源
9.3.6 使用字符串、颜色和尺寸资源
9.3.7 使用数组资源
9.4 Drawable(图片)资源
9.4.1 使用StateListDrawable资源
9.4.2 使用LayerDrawable资源
9.4.3 使用ShapeDrawable资源
9.4.4 使用ClipDrawable资源
9.4.5 使用AnimationDrawable资源
9.5 使用属性动画(Property Animation)资源
9.6 使用原始的XML资源
9.7 样式资源和主题资源
9.7.1 使用样式资源
9.7.2 使用主题资源文件
9.8 使用属性资源
9.9 使用声音资源
第三篇 技术提高篇
第10章 Android传感器应用开发详解
10.1 Android传感器系统概述
10.2 Android传感器应用开发基础
10.2.1 查看包含的传感器
10.2.2 模拟器测试工具——SensorSimulator
10.2.3 实战演练——检测当前设备支持的传感器
10.3 使用光线传感器
10.3.1 光线传感器介绍
10.3.2 使用光线传感器的方法
10.4 使用磁场传感器
10.4.1 什么是磁场传感器
10.4.2 Android系统中的磁场传感器
10.5 使用加速度传感器
10.5.1 加速度传感器的分类
10.5.2 Android系统中的加速度传感器
10.6 使用方向传感器
10.6.1 方向传感器基础
10.6.2 Android中的方向传感器
10.7 使用陀螺仪传感器
10.7.1 陀螺仪传感器基础
10.7.2 Android中的陀螺仪传感器
10.8 使用旋转向量传感器
10.9 使用距离传感器
10.9.1 距离传感器介绍
10.9.2 Android系统中的距离传感器
10.10 使用气压传感器
10.10.1 气压传感器基础
10.10.2 气压传感器在智能手机中的应用
10.11 使用温度传感器
10.11.1 温度传感器介绍
10.11.2 Android系统中的温度传感器
10.12 使用湿度传感器
第11章 游戏中的人工智能算法
11.1 人工智能基础
11.1.1 人工智能概述
11.1.2 两种实现人工智能的方法
11.1.3 人工智能在游戏中的应用
11.2 图论在人工智能中的应用
11.2.1 深度优先搜索(DFS)
11.2.2 广度优先搜索(BFS)
11.2.3 戴克斯特拉算法(Dijkstra’s Algorithm)
11.2.4 A*算法
11.3 人工智能图搜索算法在Android游戏中的用法
11.3.1 搭建路径搜索框架
11.3.2 实现深度优先算法
11.3.3 实现广度优先算法
11.3.4 实现Dijkstra算法
11.3.5 实现广度优先A*算法
11.3.6 实现Dijkstra A*算法
第12章 游戏中的Box2D 物理引擎
12.1 Box2D引擎基础
12.1.1 核心概念
12.1.2 两种模拟物理世界的算法
12.2 将Box2D类库导入Android项目中
12.3 Box2D引擎的坐标系
12.4 Box2D引擎实战
12.4.1 创建Box2D物理世界
12.4.2 在物理世界中添加矩形
12.4.3 在物理世界中添加自定义多边形
12.4.4 在物理世界中添加圆形
12.4.5 遍历Body
12.4.6 对Body施加力
12.4.7 对Body碰撞监听
12.4.8 创建关节
第四篇 综合实战篇
第13章 体育竞技类游戏——疯狂足球
13.1 蓬勃发展的手机游戏
13.2 足球游戏介绍
13.2.1 手机足球游戏
13.2.2 策划游戏
13.2.3 准备工作
13.3 项目架构
13.3.1 总体架构
13.3.2 规划类
13.4 具体编码
13.4.1 Activity类开发
13.4.2 欢迎界面
13.4.3 加载节目
13.4.4 运动控制
13.4.5 奖品模块
第14章 益智类游戏——魔塔游戏
14.1 魔塔简介
14.1.1 游戏简介
14.1.2 发展版本
14.2 设计游戏框架
14.2.1 设计界面视图
14.2.2 屏幕处理
14.2.3 更新线程
14.2.4 游戏界面显示
14.3 绘制处理
14.3.1 绘制地图
14.3.2 绘制游戏主角
14.3.3 绘制对话界面
14.3.4 战斗界面
14.3.5 图层管理器
14.4 实现游戏音效
第15章 桌面类小游戏——五子棋和扫雷
15.1 开发一个五子棋游戏
15.1.1 实例说明
15.1.2 具体实现
15.2 开发一个扫雷游戏
15.2.1 实例说明
15.2.2 具体实现
第16章 棋牌类游戏——斗地主
16.1 斗地主简介
16.2 准备素材文件
16.3 实现游戏框架
16.3.1 系统主界面视图
16.3.2 设计菜单视图界面
16.3.3 游戏视图界面
16.4 实现游戏角色
16.4.1 实现扑克角色
16.4.2 实现计分角色
16.4.3 实现玩家角色
16.4.4 实现游戏桌位角色
16.5 实现牌面分析