下载地址

《Android3D游戏开发技术详解与典型案例》主要以Android平台下3D游戏的开发为主题,并结合真实的案例向读者详细介绍了OpenGL ES的基础 知识及3D游戏程序开发的整个流程。

全书分为两篇共22章,第一篇以简单易懂的实例为依托,详细介绍了 OpenGLES各方面的基础知识,第二篇则对7个真实案例的开发步骤进行了 详细的介绍,逐步向读者讲解Android3D游戏的真实开发过程,同时源代 码中还包含了详细的注释,以尽量帮助读者掌握代码中的每一个细节,尽 快掌握Android3D游戏开发。

本书的讲述由浅入深,从Android平台下3D游戏开发应用的基础知识到开发大型游戏程序,结构清晰、语言简洁,非常适合初学者和进阶开发者 阅读参考。

《Android3D游戏开发技术详解与典型案例》的讲述由浅入深,从Android平台下3D游戏开发应用的基础知识到开发大型游戏程序,结构清晰、语言简洁,非常适合初学者和进阶开发者阅读参考。本书由吴亚峰、苏 亚光著。
图书目录:
第一篇 必知必会的基础知识

第1章 英雄还看今朝——Android简介

1.1 群雄割据的手机市场

1.1.1  手机市场的两颗新星1.1.2  手机操作系统的5大元老

1.2 Android的未来及特点

1.2.1  得中国市场者得天下1.2.2  全新的概念带来全新的体验

1.3 Android开发环境的搭建

1.3.1  SDK的安装及环境配置1.3.2  Eclipse集成开发环境的搭建1.3.3  模拟器的创建和运行

1.4 第一个Android应用程序的开发

1.4.1  第一个Android程序1.4.2  Android应用程序的调试

1.5 Android应用程序运行的内部机制

1.5.1  Android应用程序的项目结构1.5.2  Android  应用程序的系统架构1.5.3  Android  应用程序框架1.5.4  Android  运行时1.5.5  系统库1.5.6  Linux内核

1.6 本章小结

第2章 数风流人物——当前流行游戏类型简介

2.1 AVG冒险游戏

2.1.1  游戏玩法2.1.2  视觉效果2.1.3  游戏设计

2.2 PZL益智类游戏

2.2.1  游戏玩法2.2.2  视觉效果2.2.3  游戏设计

2.3 ACT动作游戏

2.3.1  历代游戏介绍2.3.2  未来动作游戏的发展

2.4 RPG角色扮演类游戏

2.4.1  历代游戏介绍2.4.2  Android平台游戏移植

2.5 STG射击类游戏

2.5.1  游戏的分类2.5.2  游戏的玩法2.5.3  游戏设计

2.6 FPS第一人称视角射击游戏

2.6.1  游戏玩法2.6.2  视觉效果2.6.3  游戏设计

2.7 SLG策略游戏

2.7.1  游戏的玩法2.7.2  视觉效果2.7.3  游戏设计

2.8 SPT体育类游戏

2.8.1  游戏的玩法2.8.2  视觉效果2.8.3  游戏设计

2.9 本章小结

第3章 不积跬步,无以至千里—游戏开发基础知识

3.1 游戏中的声音

3.1.1  迅雷不及掩耳的即时音效3.1.2  一个即时音效的例子3.1.3  背景音乐播放技术3.1.4  简单音乐播放器实现

3.2 手机中的数据库——SQLite

3.2.1  SQLite数据库简介3.2.2  SQLite数据库的基本操作3.2.3  SQLite操作数据库的简单应用

3.3 文件I/O

3.3.1  轻松访问SD卡3.3.2  访问手机中的存储文件夹3.3.3  读取assets中的文件

3.4 存储简单数据的利器——Preferences

3.4.1  Preferences简介3.4.2  Preferences实现显示上次登录时间

3.5 SURFACEView在游戏中的使用

3.5.1  SurfaceView简单操作3.5.2  简单动画场景的绘制

3.6 本章小结

第4章 千里之行,始于足下—3D开发基础知识

4.1 OpenGL ES 简介

4.1.1  师出名门的OpenGL  ES4.1.2  三角形组成的世界4.1.3  第一个OpenGL  ES三角形

4.2 不同的绘制方式

4.2.1  点和线的绘制4.2.2  索引法绘制三角形4.2.3  顶点法绘制三角形

4.3 不一样的投影,不一样的世界

4.3.1  正交投影4.3.2  透视投影4.3.3  两种投影的比较4.3.4  近大远小的原理

4.4 本章小结

第5章 愿君多采撷,此物最相思——光照效果的开发

5.1 五彩缤纷的源泉——光源

5.1.1  光源的开启及关闭5.1.2  设定光源的数量5.1.3  定向光5.1.4  定位光

5.2 光源的颜色

5.2.1  环境光5.2.2  散射光5.2.3  镜面反射光

5.3 材料反光属性的法官——法向量及材质

5.3.1  法向量的作用5.3.2  光照的开启及关闭例子5.3.3  物体的材质5.3.4  设定光源数量的例子

5.4 两个物体发光的例子

5.4.1  定位光例子的实现5.4.2  自发光物体加运动光源的实现5.4.3  MySurfaceView.java详解

5.5 面法向量与点平均法向量

5.5.1  面法向量的应用5.5.2  点平均法向量的应用

5.6 本章小结

第6章 为伊消得人憔悴—纹理映射

6.1 D世界的花衣——纹理贴图

6.1.1  指定纹理6.1.2  分配纹理坐标6.1.3  纹理贴图三角形的实现6.1.4  纹理贴图球体的构建

6.2 使用纹理映射构建地月模型

6.2.1  浩瀚星空中的地月系6.2.2  地月系的案例讲解

6.3 纹理拉伸

6.3.1  纹理拉伸的原理与用途6.3.2  纹理拉伸案例讲解

6.4 纹理过滤

6.4.1  最近点采样6.4.2  线性纹理过滤6.4.3  mipmap:多重细节层

6.5 视角的合理设置

6.5.1  不同视角的3D世界6.5.2  合理视角案例讲解

6.6 本章小结

第7章 海阔凭鱼跃,天高任鸟飞—3D基本形状的构建

7.1 圆柱体

7.1.1  圆柱体的几何方程7.1.2  圆柱体的OpenGL  ES实现

7.2 圆锥体

7.2.1  圆锥体的几何方程7.2.2  圆锥体的OpenGL  ES实现

7.3 圆环

7.3.1  圆环的几何方程7.3.2  圆环的OpenGL  ES实现

7.4 抛物面

7.4.1  抛物面的几何方程7.4.2  抛物面的OpenGL  ES实现

7.5 双曲面

7.5.1  双曲面的几何方程7.5.2  双曲面的OpenGL  ES实现

7.6 螺旋面

7.6.1  螺旋面的几何方程7.6.2  螺旋面的OpenGL  ES实现

7.7 本章小结

第8章 执子之手,与子偕老——坐标变换

8.1 理解坐标变换

8.1.1  坐标变换的实质8.1.2  重要的堆栈操作

8.2 缩放变换

8.2.1  缩放变换原理分析8.2.2  OpenGL  ES中的缩放变换实现

8.3 平移变换

8.3.1  平移变换理论概览8.3.2  OpenGL  ES中的平移变换实现

8.4 旋转变换

8.4.1  旋转变换原理概述8.4.2  OpenGL  ES中的旋转变换实现

8.5 复合变换的简单案例——地月系模型

8.6 用复合变换模拟现实世界

8.7 本章小结

第9章 孤帆远影碧空尽—摄像机与雾特效

9.1 摄像机

9.1.1  摄像机的简介9.1.2  摄像机的设置

9.2 雾特效

9.2.1  雾特效的相关知识9.2.2  雾特效核心代码

9.3 摄像机与雾特效实现沙漠中的金字塔

9.3.1  场景部件——四面体和太阳东升西落9.3.2  场景部件——星空类9.3.3  场景的创建9.3.4  摄像机Up方向变换效果

9.4 本章小结

第10章 假作真时真亦假——混合

10.1 什么是混合

10.2 源因子和目标因子

10.2.1  源因子和目标因子的默认实现方式10.2.2  预定义常量分析10.2.3  常用的组合方式10.2.4  启用混合

10.3 混合案例

10.3.1  一个混合的简单案例10.3.2  带光晕和云层效果的地月系模型10.3.3  滤光器中的世界

10.4 本章小结

第11章 蓦然回首,那人却在灯火阑珊处—3D高级技术

11.1 标志板

11.1.1  标志板技术概述11.1.2  标志板的案例

11.2 飘扬的旗帜

11.2.1  旗帜飘动效果原理11.2.2  飘扬旗帜案例讲解

11.3 山地的生成技术

11.3.1  灰度图地形技术概述11.3.2  灰度图生成3D地形11.3.3  地形场景效果的提升

11.4 镜像技术

11.4.1  镜像技术的简介11.4.2  镜像技术的实现11.4.3  镜像技术的提升

11.5 本章小结

第12章 心有灵犀一点通——传感器

12.1 传感器简介

12.1.1  磁场传感器简介12.1.2  光传感器简介12.1.3  距离传感器简介12.1.4  加速度传感器简介12.1.5  姿态传感器简介12.1.6  SensorSimulator模拟器的配置

12.2 传感器的数据传输

12.2.1  加速传感器的数据传输12.2.2  姿态传感器的数据传输

12.3 传感器实例——平衡球

12.4 本章小结

第13章 千锤万凿出深山——游戏中的数学与物理

13.1 必知必会的几何知识

13.1.1  三维笛卡儿坐标系13.1.2  向量13.1.3  加减法13.1.4  向量的点积13.1.5  向量的叉积13.1.6  空间平面的确定

13.2 不可或缺的物理世界

13.2.1  重力系统13.2.2  碰撞13.2.3  完全弹性碰撞13.2.4  带有能量损失的弹性碰撞13.2.5  粒子系统

13.3 本章小结

第14章 山舞银蛇,原驰蜡象—AI基本理念

14.1 AI简介

14.1.1  什么是智能14.1.2  什么是游戏AI

14.2 AI引擎的基本组成与设计

14.2.1  智能体14.2.2  处理机与感知14.2.3  导航

14.3 游戏AI中图的搜索

14.3.1  深度优先搜索14.3.2  广度优先搜索14.3.3  Dijkstra搜索14.3.4  广度优先A*算法的实现14.3.5  Dijkstra  A*算法的实现14.3.6  A*与非A*算法之间的比较

14.4 模糊逻辑

14.4.1  普通集合14.4.2  模糊集合14.4.3  模糊语言变量14.4.4  模糊规则

14.5 本章小结

第15章 独上高楼,望尽天涯路——开发小秘籍

15.1 地图设计器

15.1.1  不可或缺的地图设计器15.1.2  简单的地图设计器

15.2 多键技术

15.2.1  增加游戏可玩度的多键技术15.2.2  多键技术的实例演示

15.3 虚拟键盘

15.4 查找表技术

15.5 状态机

15.6 AABB边界框

15.6.1  AABB的表达方法15.6.2  计算AABB15.6.3  AABB与边界球的比较15.6.4  球与球的碰撞15.6.5  两个AABB的碰撞15.6.6  球与AABB的碰撞

15.7 穿透效应

15.8 拾取技术

15.8.1  拾取技术的原理15.8.2  拾取技术的实现

15.9 天空盒与天空穹

15.9.1  天空盒的介绍15.9.2  天空穹的介绍

15.10 本章小结

第二篇 案例实战

第16章 体育类游戏—《疯狂投篮》

16.1 游戏的背景及功能概述

16.1.1  背景概述16.1.2  功能简介

16.2 游戏的策划及准备工作

16.2.1  游戏的策划16.2.2  Android平台下游戏的准备工作

16.3 游戏的架构

16.3.1  游戏中用到的主要技术16.3.2  各类的简要介绍16.3.3  游戏的框架简介

16.4 游戏公共类的设计与实现

16.4.1  主类BasketballActivity的实现16.4.2  游戏常量类的介绍

16.5 游戏菜单界面类的设计与实现

16.5.1  游戏开始菜单的框架设计16.5.2  游戏开始菜单的实现16.5.3  游戏帮助、关于、加载及结束界面的设计与实现

16.6 游戏界面的设计与实现

16.6.1  游戏界面的框架设计16.6.2  游戏界面的实现

16.7 游戏界面中主要场景的绘制及篮球运动

16.7.1  游戏中墙壁、地板、球和篮板等的绘制16.7.2  篮板的整体绘制16.7.3  篮球的运动实现

16.8 游戏界面的碰撞检测及物体拾取

16.8.1  篮球与篮框的碰撞检测16.8.2  篮球与墙壁、地板和屋顶的碰撞检测16.8.3  手机屏幕拾取技术

16.9 游戏的优化与改进

第17章 益智类游戏—《旋转积木》

17.1 游戏的背景及功能概述

17.1.1  背景概述17.1.2  功能简介

17.2 游戏的策划及准备工作

17.2.1  游戏的策划17.2.2  Android平台下游戏的准备工作

17.3 游戏的架构

17.3.1  游戏中用到的主要技术17.3.2  各类的简要介绍17.3.3  游戏的框架简介

17.4 地图设计器的开发

17.5 游戏公共类的设计与实现

17.5.1  主类MainActivity的实现17.5.2  游戏常量类的介绍

17.6 游戏菜单界面类的设计与实现

17.6.1  游戏开始菜单的框架设计17.6.2  游戏开始菜单的实现17.6.3  游戏帮助、关于、设置及胜利界面的设计与实现

17.7 游戏界面的设计与实现

17.7.1  游戏界面的框架设计17.7.2  游戏触控方法的实现17.7.3  游戏界面的实现17.7.4  生成纹理ID的方法

17.8 游戏界面中主要场景的绘制

17.8.1  游戏中背景、移表板、图标的绘制17.8.2  地图的绘制17.8.3  积木的绘制

17.9 游戏界面的动画效果

17.9.1  积木转动的动画效果17.9.2  游戏失败、获胜的动画效果

17.10 游戏界面的碰撞检测

17.11 游戏的优化与改进

第18章 休闲类游戏—《摩天大楼》

18.1 游戏的背景及功能概述

18.1.1  背景概述18.1.2  功能简介

18.2 游戏的策划及准备工作

18.2.1  游戏的策划18.2.2  Android平台下游戏的准备工作

18.3 游戏的架构

18.3.1  游戏中用到的主要技术18.3.2  各类的简要介绍18.3.3  游戏的框架简介

18.4 游戏公共类的设计与实现

18.4.1  主类GL_Demo的实现18.4.2  游戏常量类的介绍

18.5 游戏菜单界面类的设计与实现

18.5.1  游戏开始菜单的框架设计18.5.2  游戏开始菜单的实现18.5.3  游戏帮助、关于、设置、加载及胜利界面的设计与实现

18.6 游戏界面的设计与实现

18.6.1  游戏界面的框架设计18.6.2  游戏界面的实现

18.7 游戏界面中主要场景的绘制

18.7.1  游戏中背景、地板、建筑块的绘制18.7.2  树的绘制

18.8 游戏界面的碰撞检测

18.9 游戏的优化与改进

第19章 动作类游戏—《3D空战》

19.1 游戏的背景及功能概述

19.1.1  背景概述19.1.2  功能简介

19.2 游戏的策划及准备工作

19.2.1  游戏的策划19.2.2  Android平台下游戏的准备工作

19.3 游戏的架构

19.3.1  游戏中用到的主要技术19.3.2  各类的简要介绍19.3.3  游戏的框架简介

19.4 游戏公共类的设计与实现

19.4.1  主类GL_Demo的实现19.4.2  游戏常量类的介绍

19.5 游戏菜单界面类的设计与实现

19.5.1  游戏菜单的框架设计19.5.2  游戏菜单的实现19.5.3  游戏帮助、关于、设置、加载及胜利界面的设计与实现

19.6 游戏界面的设计与实现

19.6.1  游戏界面的框架设计19.6.2  游戏界面的实现

19.7 游戏界面中飞机的绘制

19.8 游戏中的运动线程和碰撞检测

19.9 游戏的优化与改进

第20章 桌面类游戏—《激情台球》

20.1 游戏的背景及功能概述

20.1.1  背景概述20.1.2  功能简介

20.2 游戏的策划及准备工作

20.2.1  游戏的策划20.2.2  Android平台下游戏的准备工作

20.3 游戏的架构

20.3.1  游戏中用到的主要技术20.3.2  各类的简要介绍20.3.3  游戏的框架简介

20.4 网络端的开发

20.4.1  服务器的简要介绍20.4.2  服务器的代码介绍20.4.3  客户端线程的代码介绍

20.5 游戏公共类的设计与实现

20.5.1  主类MyActivity的实现20.5.2  游戏常量类的介绍

20.6 游戏菜单界面类的设计与实现

20.6.1  游戏开始菜单的框架设计20.6.2  游戏菜单的动画实现20.6.3  游戏帮助、关于、设置及胜利等界面的设计与实现

20.7 游戏界面的设计与实现

20.7.1  游戏界面的框架设计20.7.2  游戏中onKeyDown方法的实现20.7.3  游戏界面的实现

20.8 游戏界面中主要场景的绘制

20.8.1  仪表板、地板的绘制20.8.2  台球桌的绘制20.8.3  球的绘制

20.9 游戏中的碰撞检测

20.9.1  球与球台边角碰撞检测的原理20.9.2  球与球碰撞检测的原理20.9.3  球与球台边角碰撞检测的实现20.9.4  球与球碰撞检测的实现20.9.5  球运动线程的实现

20.10 游戏的优化与改进

第21章 射击类游戏—《抢滩登陆》

21.1 游戏的背景及功能概述

21.1.1  背景概述21.1.2  功能简介

21.2 游戏的策划及准备工作

21.2.1  游戏的策划21.2.2  Android平台下游戏的准备工作

21.3 游戏的架构

21.3.1  游戏中用到的主要技术21.3.2  各类的简要介绍21.3.3  游戏的框架简介

21.4 游戏公共类的设计与实现

21.4.1  主类Activity的实现21.4.2  游戏常量类的介绍

21.5 游戏菜单界面类的设计与实现

21.5.1  游戏菜单界面的框架设计21.5.2  游戏菜单界面的实现21.5.3  游戏帮助、关于及结束界面的设计与实现

21.6 游戏界面的设计与实现

21.6.1  游戏界面的框架设计21.6.2  游戏界面的实现

21.7 游戏界面中主要场景的绘制及实物运动

21.7.1  游戏中的绘制21.7.2  灯塔的整体绘制21.7.3  物体的运动实现

21.8 游戏中的碰撞检测

21.9 游戏的优化与改进

第22章 竞技类游戏—《乡村飙车》

22.1 游戏的背景及功能概述

22.1.1  背景概述22.1.2  功能简介

22.2 游戏的策划及准备工作

22.2.1  游戏的策划22.2.2  Android平台下游戏的准备工作

22.3 游戏的框架介绍

22.3.1  游戏中用到的主要技术22.3.2  各类的简单介绍22.3.3  游戏的框架介绍

22.4 游戏公共类的设计与实现

22.4.1  主类Activity_GL_Racing的实现22.4.2  游戏常量类的介绍

22.5 游戏菜单类的设计与实现

22.5.1  游戏主菜单的设计与实现22.5.2  游戏加载界面的设计与实现22.5.3  游戏历史界面的设计与实现22.5.4  游戏帮助、设置、关于、选择等界面的设计与实现

22.6 游戏界面的设计与实现

22.6.1  游戏界面的框架设计22.6.2  游戏界面的实现22.6.3  传感器应用与多点触控技术

22.7 游戏界面中主要场景的绘制

22.7.1  游戏界面中场景的分层绘制及渲染优化22.7.2  游戏界面中地图赛道的生成与绘制22.7.3  场景部件的绘制22.7.4  游戏中汽车的加载22.7.5  游戏中树的绘制技术22.7.6  场景中游戏辅助部件的绘制

22.8 游戏中的碰撞检测及行驶圈数判定

22.8.1  汽车与公路部件的碰撞检测22.8.2  汽车行驶圈数判定22.8.3  汽车与可碰撞部件的碰撞检测及其动画实现

22.9 游戏的优化与改进

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. Android小项目之八 界面细节
  3. Android动态界面开发框架Tangram使用完整教程
  4. Android(安卓)SoftAp支持 (一)
  5. Android(安卓)Toast优化--通过自定义布局实现界面美化
  6. JS和Android交互调用
  7. 使用html开发软件界面
  8. android 游戏引擎libgdx demo cuboc分析
  9. 使用Chrome远程调试Android移动端WebView中的JS

随机推荐

  1. JavaScript 通过native.js 调用Android原
  2. android 反汇编,修改,重新打包
  3. android常用控件应用之文本框(TextView)特
  4. Android(安卓)Studio运行程序出现Session
  5. Android Gradle manifestPlaceholders 占
  6. Android Studio 默认keystore 以及自定义
  7. Android API 中文 (55) ―― ListAdapter
  8. android中ActionBar以及其与Action Butto
  9. Android中http请求(C# MVC接收)
  10. [Android] 获取Android设备的唯一识别码|