内容简介
第一篇Android游戏开发核心技术
第1章Android平台简介
1.1 Android的来龙去脉
1.2掀起Android的盖头来
1.2.1选择Android的理由
1.2.2 Android的应用程序框架
1.3 Android开发环境的搭建
1.3.1 SDK的下载及安装
1.3.2 Eclipse集成开发环境的搭建
1.3.3虚拟设备的创建与模拟器的运行
1.3.4第一个Android程序
1.3.5 Android程序的监控与调试
1.4小结
第2章Android游戏开发之前台渲染
2.1创建Android用户界面
2.1.1布局管理
2.1.2常用控件及其事件处理
2.2图形与动画在Android中的实现
2.2.1简单图形的绘制
2.2.2贴图的艺术
2.2.3自定义动画的播放
2.3 Android平台下的多媒体开发
2.3.1音频的播放
2.3.2视频的播放
2.3.3 Camera图像采集
2.4小结
第3章Android游戏开发之交互式通信
3.1 Android应用程序的基本组件
3.1.1 Activity组件
3.1.2 Service组件
3.1.3 Broadcast Receiver组件
3.1.4 Content Provider组件
3.1.5 AndroidManifest.xml文件简介
3.2应用程序的内部通信
3.2.1消息的处理者——Handler类简介
3.2.2使用Handler进行内部通信
3.3应用程序组件之间的通信
3.3.1 Intent类简介
3.3.2应用程序组件——IntentF ilter类简介
3.3.3示例1:与Android系统组件通信
3.3.4示例2:应用程序组件间通信示例Activity部分的开发
3.3.5示例3:应用程序组件间通信示例Service部分的开发
3.4小结
第4章Android游戏开发之数据存储和传感器
4.1在Android平台上实现数据存储
4.1.1私有文件夹文件的写入与读取
4.1.2读取Resources和Assets中的文件
4.1.3轻量级数据库SQLite简介
4.1.4 SQLite的使用示例
4.1.5数据共享者——Content Provider的使用
4.1.6简单的数据存储——Preferences的使用
4.2 Android平台下传感器应用的开发
4.2.1传感器应用开发流程
4.2.2常用传感器简介
4.2.3传感器应用开发示例
4.2.4使用SensorS imulator模拟传感器变化
4.2.5使用新版本的API开发传感器应用
4.3小结
第5章Android游戏开发之网络编程
5.1基于Socket套接字的网络编程
5.2基于HTTP协议的网络编程
5.2.1通过URL获取网络资源
5.2.2在Android中解析XML
5.3 Android平台下的Google Map
5.3.1定位类GenPoint与显示地图类MapView的搭配使用
5.3.2位置监听器——LocationListener的使用
5.4其他网络通信方式
5.4.1使用WiFi进行开发
5.4.2借助于蓝牙(Bluetooth)技术进行开发
5.5小结
第6章 不一样的游戏,一样的精彩
6.1射击类游戏
6.1.1游戏玩法
6.1.2视觉效果
6.1.3游戏内容设计
6.2竞速类游戏
6.2.1游戏玩法
6.2.2视觉效果
6.2.3游戏内容设计
6.3益智类游戏
6.3.1游戏玩法
6.3.2视觉效果
6.3.3游戏内容设计
6.4角色扮演游戏
6.4.1游戏玩法
6.4.2视觉效果
6.4.3游戏内容设计
6.5闯关动作类游戏
6.5.1游戏玩法
6.5.2视觉效果
6.5.3游戏内容设计
6.6冒险游戏
6.6.1游戏玩法
6.6.2视觉效果
6.6.3游戏内容设计
6.7策略游戏
6.7.1游戏玩法
6.7.2视觉效果
6.7.3游戏内容设计
6.8养成类游戏
6.8.1游戏玩法
6.8.2视觉效果
6.8.3游戏内容设计
6.9经营类游戏
6.9.1游戏玩法
6.9.2视觉效果
6.9.3游戏内容设计
6.10体育类游戏
6.10.1游戏玩法
6.10.2视觉效果
6.10.3游戏内容设计
6.11小结
第7章 游戏背后的数学与物理
7.1编程中经常用到的数理知识
7.1.1数学方面
7.1.2物理方面
7.2物理小球在游戏中的应用
7.2.1开发运动体Movable类的代码
7.2.2开发物理引擎BallThread类的代码
7.2.3视图类——开发BallView类的代码
7.2.4绘制线程——开发DrawThread类的代码
7.2.5开发Activity部分的代码
7.3粒子系统
7.3.1粒子对象类——开发粒子对象Particle类和粒子集合ParticleSet类
7.3.2开发焰火粒子系统的物理引擎ParticleThread类的代码
7.3.3视图类——开发视图类ParticleView及其相关类
7.3.4开发程序Activity部分的代码
7.3.5将焰火粒子系统改为瀑布粒子系统
7.4碰撞检测技术
7.4.1碰撞检测技术基础
7.4.2游戏中实体对象之间的碰撞检测
7.4.3游戏实体对象与环境之间的碰撞检测
7.5小结
第8章 游戏中的人工智能
8.1让怪物聪明起来——Android中的路径搜索
8.1.1路径搜索示例基本框架的搭建
8.1.2路径搜索示例的控制面板实现
8.1.3路径搜索示例GameView的实现
8.1.4深度优先路径搜索DFS
8.1.5广度优先路径搜索BFS
8.1.6路径搜索算法——Dijkstra
8.1.7用A*算法优化搜索
8.2有限状态机
8.2.1何为有限状态机
8.2.2有限状态机的简单实现
8.2.3有限状态机的OO实现
8.3小结
第9章 游戏开发小秘技
9.1地图编辑器与关卡设计
9.1.1关卡地图的重要性
9.1.2图片分割界面的实现
9.1.3地图设计界面的实现
9.2游戏中的模糊逻辑
9.2.1模糊的才是真实的
9.2.2如何在Android中将游戏模糊化
9.3游戏的基本优化技巧
9.3.1代码上的小艺术
9.3.2Android中的查找表技术
9.3.3游戏的感觉和性能问题
9.4小结
第10章 游戏的心脏——物理引擎
10.1物理引擎很重要
10.1.1什么是物理引擎
10.1.2常见的物理引擎
10.2 2D的王者JBox2D
10.2.1基本的物理学概念
10.2.2 JBox2D中常用类的介绍
10.3球体撞击木块金字塔案例
10.3.1案例运行效果
10.3.2案例的基本框架结构
10.3.3常量类——Constant
10.3.4抽象类——MyBody
10.3.5圆形刚体类——MyCircleColor
10.3.6生成刚体形状的工具类——Box2DUtil
10.3.7颜色工具类——ColorUtil
10.3.8主控制类——MyBox2dActivity
10.3.9显示界面类——GameView
10.3.10绘制线程类——DrawThread
10.4简易打砖块案例
10.4.1一般碰撞版
10.4.2碰撞后消失版
10.5旋转关节跷跷板案例
10.5.1旋转关节介绍
10.5.2多边形刚体类MyPolygonColor的开发
10.5.3生成刚体形状的工具类——Box2DUtil
10.5.4将场景中的刚体摆放到位
10.5.5增加旋转关节
10.6旋转关节链条摆案例
10.6.1案例运行效果
10.6.2案例的机械结构
10.6.3主控制类——MyBox2dActivity
10.7组合机械结构案例
10.7.1案例的运行效果
10.7.2整体场景的机械结构
10.7.3案例的基本框架结构
10.7.4圆形刚体类——MyCircleColor
10.7.5生成刚体形状的工具类——Box2DUtil
10.7.6主控制类——MyBox2dActivity
10.7.7游戏界面类——GameView
10.7.8绘制线程类——DrawThread
10.8小结
第11章OpenGL ES应用开发基础
11.1 OpenGL ES概述及3D基本图形绘制
11.1.1 OpenGL及OpenGL ES简介
11.1.2 3D基本知识
11.1.3使用索引的不同绘制方式
11.1.4用索引法绘制三角形的案例
11.1.5不使用索引数据绘制
11.2正交投影和透视投影
11.2.1正交投影
11.2.2透视投影
11.2.3两种投影方式的原理及视口
11.2.4两种投影方式的案例
11.3光照与材质
11.3.1光照的3种组成元素
11.3.2定向光与定位光
11.3.3法向量
11.3.4材质
11.3.5两种光源的案例
11.4纹理及纹理映射
11.4.1纹理映射基本原理
11.4.2使用纹理映射的案例
11.4.3几种纹理拉伸方式
11.4.4几种纹理过滤方式
11.5摄像机和雾特效
11.5.1摄像机的设置
11.5.2设置合理的视角
11.5.3雾特效的开发
11.6典型几何体的开发
11.6.1圆柱
11.6.2圆锥
11.6.3球
11.6.4椭圆体
11.6.5胶囊体
11.6.6几何体大集合
11.7小结
第二篇Android游戏开发实战综合案例
第12章 滚屏动作游戏——太空保卫战
12.1游戏的背景及功能概述
12.1.1背景概述
12.1.2功能简介
12.2游戏的策划及准备工作
12.2.1游戏的策划
12.2.2 Android平台下游戏的准备工作
12.3游戏的架构
12.3.1各个类的简要介绍
12.3.2游戏的框架简介
12.4辅助界面相关类的实现
12.4.1主控制类——PlaneActivity的实现
12.4.2欢迎界面WelcomeView类
12.4.3其他辅助界面的介绍
12.5游戏界面的框架设计
12.6游戏实体相关类的实现
12.6.1飞机Plane类的实现
12.6.2敌方飞机EnemyPlane类的实现
12.6.3子弹Bullet类的实现
12.6.4其他相关类的实现
12.7游戏界面的完善
12.7.1地图类Maps的实现
12.7.2背景滚动类GameViewBack GroundThread的实现
12.7.3物体移动线程MoveThread的实现
12.7.4键盘监听线程KeyThread的实现
12.7.5图片初始化方法initBitmap的实现
12.7.6绘制方法onDraw的实现
12.8游戏的优化与改进
第13章 棋牌游戏——中国象棋人机对弈
13.1游戏的背景及功能概述
13.1.1背景概述
13.1.2功能介绍
13.2游戏的策划及准备工作
13.2.1游戏的策划
13.2.2 Android平台下游戏的准备工作
13.3游戏的架构
13.3.1各个类简要介绍
13.3.2游戏框架简介
13.4主控制类——Chess_DJB_Activity
13.5辅助界面相关类
13.6游戏界面相关类
13.6.1游戏界面绘制类GameView
13.6.2游戏界面常量类ViewConstant
13.7走法引擎相关类
13.7.1常量类Constant
13.7.2工具类Chess_LoadUtil
13.7.3走法引擎主类LoadUtil
13.7.4走法的排序规则类MyComparator
13.7.5记录走棋步骤类StackplayChess
13.8游戏的优化与改进
第14章 物理传感器游戏——小球快跑
14.1游戏背景及功能概述
14.1.1背景概述
14.1.2功能简介
14.2游戏的策划及准备工作
14.2.1游戏的策划
14.2.2小球快跑游戏开发的准备工作
14.3游戏的架构
14.3.1游戏的总体架构
14.3.2游戏的类结构
14.4主控制类——DriftBall类的开发
14.4.1 DriftBall类的代码框架
14.4.2 DriftBall类的主要成员方法的实现
14.5游戏主菜单的开发
14.5.1欢迎界面类——Welcome View类的代码框架
14.5.2 WelcomeView类主要成员方法
14.5.3 WelcomeThread类的开发
14.5.4菜单界面的用户交互事件处理
14.6游戏界面模块的开发
14.6.1游戏界面类——GameView的成员变量
14.6.2 GameView的成员方法简介
14.6.3游戏界面绘制线程——GameThread类的代码框架
14.6.4 GameMenuThread类的开发
14.6.5用户交互事件处理
14.7游戏中各个图层的开发
14.7.1地图图层的开发
14.7.2其他图层的开发与实现
14.8游戏后台逻辑的开发
14.8.1小球的运动控制
14.8.2小球的碰撞检测
14.8.3大炮相关类Cannon和Missile的开发
14.9传感器计算模块的开发
14.9.1手机姿态变化监听器——BallListener类的开发
14.9.2工具类——RotateUtil类的代码框架
14.9.3工具类——RotateUtil类的开发
14.10游戏的优化与改进
第15章 塔防游戏——精灵塔防
15.1游戏的背景及功能概述
15.1.1背景概述
15.1.2功能介绍
15.2游戏的策划及准备工作
15.2.1游戏的策划
15.2.2 Android平台下游戏开发的准备工作
15.3游戏的架构
15.3.1各个类的简要介绍
15.3.2游戏框架简介
15.4主控制类TafangGameActivity和数据库类DBUtil
15.4.1主控制类——TafangGame Activity主要框架
15.4.2主控制类——TafangGame Activity中部分数据库的实现
15.4.3主控制类——TafangGame Activity中对话框的开发
15.4.4数据库类DBUtil的开发
11.5界面相关类
15.5.1欢迎界面Welcome View类的介绍
15.5.2主界面MainMenuSurfaceView类的介绍
15.5.3音效设置界面MusicSurfaceView类的介绍
15.5.4游戏结束界面GameOverView类和帮助界面HelpView类的介绍
15.5.5积分榜界面HighJifenSurfaceView类的介绍
15.6游戏界面GameView及相关类
15.6.1精灵怪物Target类
15.6.2箭塔SingleJianta类
15.6.3箭Shell类
15.6.4精灵怪物的出击现场——TargetNumThread
15.6.5箭塔控制发射线程——ShellNumThread
15.6.6游戏地图矩阵模拟化
15.6.7摆放箭塔守护城池
15.6.8游戏中的2.5D效果
15.6.9弹指间怪物灰飞烟灭——游戏水晶
15.7游戏的优化和改进
第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.4地图设计器的开发
16.4.1底层地图设计器的开发
16.4.2上层地图设计器的开发
16.5Activity和游戏工具类的开发
16.5.1主控制类——HDZGActivity的介绍
16.5.2公式封装类——GameFormula的介绍
16.5.3常量工具类ConstantUtil的介绍
16.6数据存取模块的开发
16.6.1城池信息以及地图层信息的封装类
16.6.2数据存取相关类的介绍
16.7英雄角色模块的开发
16.7.1 Hero类的代码框架
16.7.2英雄运动线程——HeroGoThread类的开发
16.7.3辅助线程——HeroBackDataThread类的开发
16.8表示层界面模块的开发
16.8.1滚屏类——ScreenRollView类的开发
16.8.2滚屏线程——ScreenRollThread的开发
16.8.3游戏界面GameView的框架介绍
16.8.4游戏界面绘制方法onDraw的介绍
16.8.5游戏界面屏幕监听方法onTouch的介绍
16.8.6游戏界面后台线程GameViewThread的介绍
16.9管理面板模块的开发
16.9.1人物属性面板类ManPanelView的开发
16.9.2城池管理面板类CityManageView的开发
16.10地图中可遇实体模块的开发
16.10.1绘制类——MyDrawable的开发
16.10.2抽象类——MyMeetableDrawable的开发
16.10.3森林类——ForestDrawable的开发
16.10.4可遇实体对象的调用流程
16.11英雄技能模块的开发
16.11.1技能抽象类——Skill的开发
16.11.2伐木技能类——LumberSkill的开发
16.11.3随心步技能类——SuiXinBuSkill的开发
16.12游戏提示模块的开发
16.12.1提示模块抽象类——GameAlert的开发
16.12.2点击确定按钮显示的信息类——PlainAlert的开发
16.12.3显示粮草危机信息类——FoodAlert的开发
16.12.4辅助线程HeroBackDataThread中对FoodAlert的调用
16.13游戏的优化与改进
第17章 体育游戏——2D迷你桌球
17.1 2D桌球的背景及功能概述
17.1.1背景概述
17.1.2功能简介
17.2游戏的策划及准备工作
17.2.1游戏的策划
17.2.2 Android平台下游戏的准备工作
17.3游戏的架构
17.3.1游戏的框架简介
17.3.2各个类的简要介绍
17.4公共类的实现
17.4.1主控制类——GameActivity的代码框架
17.4.2 GameActivity类主要成员变量及方法的实现
17.4.3常量类——Constant的实现
17.5辅助界面相关类的实现
17.5.1欢迎动画界面WelcomeView类的实现
17.5.2主菜单界面MainMenuView的代码框架
17.5.3主界面类——MainMenu View部分成员方法的实现
17.5.4主界面动画线程类View DrawThread的实现
17.5.5排行榜界面HighScore View的代码框架
17.5.6 HighScoreView类的部分方法的实现
17.6游戏界面相关类的实现
17.6.1游戏界面GameView类的代码框架
17.6.2 GameView类部分成员方法的实现
17.6.3键盘监听线程KeyThread类的实现
17.6.4球运动的线程BallGoThread类的实现
17.7情景相关类的实现
17.7.1球台Table类的实现
17.7.2桌球Ball类的代码框架
17.7.3 Ball类部分成员方法的实现
17.7.4球杆Cue类的实现
17.8自定义控件及工具类的实现
17.8.1球与球碰撞检测的工具类CollisionUtil的实现
17.8.2定时器Timer类的实现
17.8.3主菜单按钮MainMenu Button类的实现
17.8.4获取日期的工具DateUtil类的实现
17.9游戏的优化与改进
第18章 益智游戏——3D版推箱子
18.1 3D版推箱子的背景及功能概述
18.1.1背景概述
18.1.2功能简介
18.2游戏的策划及准备工作
18.2.1游戏的策划
18.2.2 Android平台下游戏开发的准备工作
18.3游戏的架构
18.3.1游戏的框架简介
18.3.2各个类的简要介绍
18.4公共类的实现
18.4.1主控制类——MyActivity的代码框架
18.4.2 MyActivity类成员方法的实现
18.4.3常量类Constant的实现
18.5辅助界面相关类的实现
18.5.1欢迎动画界面WelcomeView类的实现
18.5.2主菜单界面MainView的实现
18.6游戏界面相关类
18.6.1游戏界面MySurfaceView类的设计与实现
18.6.2键盘监听线程KeyThread
18.7自定义控件及工具类
18.7.1缩放图片的方法PicLoadUtil
18.7.2主菜单上的按钮类MainMenuButton
18.8情景相关类的实现
18.8.1机器人类的代码框架
18.8.2机器人类成员方法的实现
18.8.3机器人组类RobotGroup类的实现
18.8.4机器人组类成员方法的实现
18.8.5圆面Circle类的实现
18.8.6矩形纹理类TextureRect的实现
18.8.7纹理矩形组类TextureRectGroup的实现
18.8.8墙类Wall的实现
18.8.9墙Wall类成员方法的实现
18.8.10箱子Cube类的实现
18.8.11箱子组CubeGroup类的实现
18.8.12箱子移动CubeGo类的代码框架
18.8.13箱子移动CubeGo类的成员方法的实现
18.8.14地板类Floor的实现
18.9推箱子地图设计器的开发
18.10游戏的优化与改进
第19章 物理引擎游戏——盛怒的老鼠
19.1游戏背景及功能概述
19.1.1游戏开发背景
19.1.2游戏功能概述
19.2游戏策划及准备工作
19.2.1游戏策划
19.2.2游戏开发的准备工作
19.3游戏的框架
19.3.1游戏主要用到的技术
19.3.2游戏各个类的介绍
19.3.3游戏的基本框架
19.4公共类
19.4.1主控制类——MyBox2dActivity
19.4.2常量类Constant
19.5主界面的设计与实现
19.5.1鼠头和猫头类Taj
19.5.2鼠头和猫头控制线程——TJThread
19.5.3主界面MainMenuView
19.5.4刷帧线程MainMenuDrawThread
19.6工具类
19.6.1加载及缩放图片的工具类PicLoadUtil
19.6.2生成刚体工具类Box2DUtil
19.6.3声音工具类SoundUtil
19.7刚体相关类
19.7.1多边形类MyPolygonImg
19.7.2猫头类BodyCat
19.7.3冰块类BodyIce
19.7.4木条类BodyWood
19.7.5刚体类型枚举类BodyType
19.7.6刚体查询工具类Body SearchUtil
19.8游戏界面相关类
19.8.1皮筋类Pijin
19.8.2记录分数类Score
19.8.3刷帧线程DrawThread
19.8.4游戏界面类GameView
19.9游戏优化与改进