新書推薦:
《
送你一匹马(“我不求深刻,只求简单。”看三毛如何拒绝内耗,为自己而活)
》
售價:NT$
295.0
《
万千心理·我的精神分析之道:复杂的俄狄浦斯及其他议题
》
售價:NT$
475.0
《
荷马:伊利亚特(英文)-西方人文经典影印21
》
售價:NT$
490.0
《
我的心理医生是只猫
》
售價:NT$
225.0
《
股权控制战略:如何实现公司控制和有效激励(第2版)
》
售價:NT$
449.0
《
汉译名著·哲学经典十种
》
售價:NT$
3460.0
《
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
》
售價:NT$
280.0
《
爱丁堡古罗马史-罗马城的起源和共和国的崛起
》
售價:NT$
349.0
編輯推薦:
涵盖游戏开发的核心技术,如前台渲染、交互式通信、数据存储和传感器、网络编程、游戏地图、物理引擎、OpenGL ES
3D等
8大游戏案例:
太空保卫战、中国象棋人机对弈、重力球、炫彩塔防、回到战国、2D迷你桌球、3D魔方、盛怒的老鼠
8大游戏类型
滚屏射击游戏、棋牌类游戏、物理传感器游戏、塔防游戏、策略游戏、体育休闲类游戏、益智类游戏、物理引擎游戏
內容簡介:
《Android游戏开发大全第二版》是讲解Android游戏案例开发的专业书籍,全书分两篇共19章,第1篇Android游戏开发核心技术,主要包括Android游戏开发的前台渲染、交互式通信、数据存储和传感器、网络编程、游戏背后的数学与物理、游戏地图开发、游戏开发小秘技、游戏的心脏——物理引擎、OpenGL
ES
3D应用开发基础等;第2篇Android游戏开发实战综合案例,包括现在流行的游戏类型,如滚屏动作游戏——太空保卫战、棋牌游戏——中国象棋人机对弈、物理传感器游戏——哇!重力球、塔防游戏——炫彩塔防、策略游戏——回到战国、体育游戏——2D迷你桌球、益智游戏——3D魔方、物理引擎游戏——盛怒的老鼠。
《Android游戏开发大全第二版》适合Android初学者、有Java基础的读者、在职开发人员、游戏开发爱好者、程序员,以及大中专院校相关专业的学习用书和相关专业培训学校的教材。
關於作者:
吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有十多年的Java开发与培训经验。主要的研究方向为OpenGL
ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java
EE独立软件开发工程师,并兼任百纳科技Java培训中心首席培训师。近10年来为数十家著名企业培养了上千名高级软件开发人员,曾编写过《菜鸟成长之路——Java程序员职场全攻略》、《Android
3D游戏开发技术详解与典型案例》、《Android应用案例开发大全》、《Android游戏开发大全》、《Android
3D游戏开发技术宝典——OpenGL ES 2.0》、《Unity
3D游戏开发技术详解与典型案例》等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列优秀的Android应用程序与3D游戏。
目錄 :
第一篇 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 应用程序组件——IntentFilter类简介
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 接近传感器
4.2.5 磁场传感器
4.2.6 加速度传感器
4.2.7 姿态传感器
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 准备工作
5.3.2 简单的案例
5.4 蓝牙通信
5.4.1 基础知识
5.4.2 简单的案例
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 用粒子系统模拟流体
7.5.1 基本原理
7.5.2 一个简单的案例
7.5.3 通过将物理计算并行化提高效率
7.6 小结
第8章 游戏地图必知必会
8.1 两种不同单位形状的地图
8.1.1 正方形地图
8.1.2 正方形地图案例
8.1.3 正六边形地图
8.1.4 正六边形地图案例
8.1.5 正方形地图和正六边形地图的比较
8.2 正六边形地图路径搜索
8.2.1 路径搜索示例基本框架的搭建
8.2.2 深度优先路径搜索DFS
8.2.3 广度优先路径搜索BFS
8.2.4 路径搜索算法——Dijkstra
8.2.5 用A*算法优化算法
8.3 地图编辑器与关卡设计
8.3.1 关卡地图的重要性
8.3.2 图片分割界面的实现
8.3.3 地图设计界面的实现
8.4 小结
第9章 游戏开发小秘技
9.1 有限状态机
9.1.1 何为有限状态机
9.1.2 有限状态机的简单实现
9.1.3 有限状态机的OO实现
9.2 游戏中的模糊逻辑
9.2.1 模糊的才是真实的
9.2.2 如何在Android中将游戏模糊化
9.3 游戏的基本优化技巧
9.3.1 代码上的小艺术
9.3.2 Android中的查找表技术
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 多边形刚体类MyPolygon Color的开发
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 游戏界面——GameView
10.7.7 主控制类MyBox2dActivity
10.7.8 绘画线程类——DrawThread
10.8 小结
第11章 OpenGL ES 3D应用开发基础
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 背景滚动类GameViewBackGroundThread的实现
12.7.3 物体移动线程MoveThread的实现
12.7.4 键盘监听线程PlanMove Thread的实现
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 主控制类——TableBallActivity类的开发
14.5 界面相关类
14.5.1 主界面类MainMenuView
14.5.2 模式选择界面类PatternChooseView
14.5.3 选关界面LevelChooseView
14.5.4 历史记录界面HistoryView
14.5.5 设置界面SettingsView
14.6 工具辅助类
14.6.1 数据库类DBUtil
14.6.2 声音工具类SoundUtil
14.6.3 图片工具类PicLoadUtil
14.6.4 时间相关类
14.7 刚体类
14.7.1 刚体父类MyBody
14.7.2 球洞类Hole
14.7.3 变化的洞FlashHole类
14.7.4 创建刚体的工具类
14.8 游戏界面相关类
14.8.1 游戏界面GameView
14.8.2 碰撞响应类CollisionAction
14.8.3 游戏界面绘画线程DrawThread
14.9 游戏的优化与改进
第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 游戏辅助界面
15.4.1 主菜单界面
15.4.2 游戏关卡界面
15.4.3 关于游戏界面
15.5 游戏算法及主界面相关类
15.5.1 游戏核心算法类——Game
15.5.2 游戏界面相关类
15.5.3 怪物类——Monster_Square
15.5.4 炮塔类——Tower_Shell
15.5.5 子弹相关类
15.5.6 地图功能类——Blood_Up
15.5.7 怪物生成线程——CreateMonster
15.5.8 爆炸类——Utils
15.5.9 屏幕自适应相关类
15.6 游戏的优化及改进
第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.5 Activity和游戏工具类的开发
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 主界面类——MainMenuView部分成员方法的实现
17.5.4 主界面动画线程类ViewDrawThread的实现
17.5.5 排行榜界面HighScoreView的代码框架
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 主菜单按钮MainMenuButton类的实现
17.8.4 获取日期的工具DateUtil类的实现
17.9 游戏的优化与改进
第18章 益智游戏——3D魔方
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.4 公共类CubeActivity
18.5 游戏欢迎界面类WelcomeView
18.6 游戏界面相关类
18.6.1 辅助类TextureRect类
18.6.2 魔方控制类CubesControl
18.6.3 魔方正方形绘制类CubeSurfDraw
18.6.4 辅助类FlagDraw
18.6.5 魔方单面颜色信息类Surface
18.6.6 魔方信息类CubeData
18.6.7 单个魔方面类SurfaceGroup
18.6.8 数据常量类Constant
18.6.9 游戏界面类MySurfaceView
18.7 游戏相关线程类
18.7.1 单层旋转动画类RotateThread
18.7.2 游戏帮助类HelpThread
18.7.3 魔方还原动画类ReSetCube
18.7.4 打乱魔方动画类UpsetThread
18.7.5 计时器类TimeThread
18.8 魔方的还原算法工具类ReSetUtil
18.9 游戏的优化与改进
第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 刚体查询工具类BodySearchUtil
19.8 游戏界面相关类
19.8.1 皮筋类Pijin
19.8.2 记录分数类Score
19.8.3 刷帧线程DrawThread
19.8.4 游戏界面类GameView
19.9 游戏优化与改进