×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787115461247
  • 装帧:暂无
  • 册数:暂无
  • 重量:暂无
  • 开本:32开
  • 页数:395
  • 出版时间:2017-08-01
  • 条形码:9787115461247 ; 978-7-115-46124-7

本书特色

内 容 提 要 本书共分为15章,全面讲解了用Cocos2d-x引擎进行3D游戏开发的知识和开发技巧,首先介绍3D开发中使用到的相关Cocos2d-x基础类,包括加载模型、背面剪裁、摄像机、骨骼动画、异步加载和自定义着色器等,接下来介绍常用的3D开发技巧,如标志板技术、天空盒、立方图纹理、水特效和材质系统、Cocos2d-x引擎中的地形(Terrain类)和导航网格(NavMesh类),适合模拟室外的平原、高山、丘陵等,使游戏场景更加丰富,也讲解了拾取与包围盒、光照和阴影、3D粒子系统与拖尾效果的使用、正六边形瓦片地图、正六边形地图的路径搜素和手机截屏等方面的知识,以及Bullet物理引擎、VR游戏开发等知识,*后讲解了综合案例,包括益智类游戏—指尖方块和射击解谜类游戏—绿色行动,让读者学以致用。 本书适合Cocos2d-x初学者、游戏开发者、程序员学习,也适合作为大专院校相关专业师生学习用书以及培训学校的教材。

内容简介

系统介绍了基于Cocos2d-x平台进行3D游戏开发所需的各项技术,主要包括基本模型的加载与渲染、3D地形和导航网格、包围盒与拾取、光照和阴影、3D粒子系统,同时还详细介绍了大名鼎鼎的开源3D物理引擎Bullet在Cocos2d-x中的使用。 紧跟时代潮流,介绍了如何基于Cocos2d-x进行Cardboard及GearVR平台虚拟现实游戏的开发。 给出了两个完整的3D游戏案例,分别是“益智类游戏——指尖方块”和“射击解谜类游戏——绿色行动”,方便读者快速提升实战能力。 为了方便不同目标平台读者的学习,这两个大案例都同时提供了Android以及iOS平台的项目版本。

目录



目 录



第1章 初识Cocos2d-x 1

1.1 Cocos2d-x的概述 1

1.1.1 Cocos2d-x的发展史 1

1.1.2 Cocos2d-x的市场前景 2

1.2 Cocos2d-x开发环境的搭建 2

1.2.1 Android Studio以及Android SDK的下载与配置 2

1.2.2 Android NDK的下载与配置 5

1.2.3 Cocos2d-x的下载与配置 6

1.3 初识Cocos2d-x应用程序 7

1.3.1 本书案例的导入与运行 7

1.3.2 Cocos2d-x案例导入后的相关修改 9

1.3.3 创建自己的项目 9

1.4 本章小结 12

第2章 3D开发基础 13

2.1 与3D开发相关的基础知识 13

2.1.1 基础知识 13

2.1.2 加载obj格式模型的案例 18

2.1.3 背面剪裁 23

2.1.4 摄像机背景画笔 25

2.2 骨骼动画的使用 27

2.2.1 基础知识 27

2.2.2 c3b文件的生成 28

2.2.3 加载骨骼动画的案例 29

2.2.4 骨骼动画关键帧回调的使用 32

2.3 3D精灵的异步加载 35

2. 3.1 异步加载的基础知识 35

2.3.2 3D精灵的异步加载案例 35

2.4 三种基本变换的灵活使用 39

2.4.1 背景知识 39

2.4.2 桌球案例的实现策略 40

2.4.3 案例的开发 41

2.5 3D基本动作 45

2.5.1 基础知识 45

2.5.2 案例的开发 45

2.6 自定义着色器基础 47

2.6.1 背景知识 47

2.6.2 Cocos2d-x中的相关方法 47

2.6.3 自定义着色器案例 48

2.7 本章小结 51

第3章 常用的3D开发技巧 52

3.1 标志板技术的应用 52

3.1.1 基础知识 52

3.1.2 一个简单案例的开发 53

3.2 天空盒 57

3.2.1 基础知识 57

3.2.2 一个简单案例的开发 58

3.3 立方图纹理 60

3.3.1 基础知识 60

3.3.2 一个简单案例的开发 60

3.4 让游戏更加灵动—水特效 62

3.4.1 基础知识 63

3.4.2 一个简单案例的开发 63

3.5 压缩纹理的使用 69

3.6 材质系统 70

3.6.1 基础知识 70

3.6.2 一个简单案例的开发 71

3.7 本章小结 74

第4章 3D地形和导航网格 75

4.1 地形的基础知识 75

4.2 地形制作相关工具 78

4.2.1 TerrainEditTool的下载 78

4.2.2 TerrainEditTool的使用 79

4.2.3 地形预烘焙贴图制作 82

4.3 3D地形案例开发 85

4.3.1 定向光照案例 85

4.3.2 可变方向光照案例 89

4.4 导航网格的相关类 92

4.5 导航网格设计软件 94

4.5.1 设计软件的下载与编译 94

4.5.2 设计软件的使用 96

4.6 导航网格案例 98

4.7 本章小结 103

第5章 拾取与包围盒 104

5.1 AABB包围盒 104

5.1.1 基础知识 104

5.1.2 一个简单案例的开发 105

5.2 拾取 107

5.2.1 基础知识 107

5.2.2 一个简单案例的开发 108

5.3 AABB包围盒的不精确性 113

5.4 OBB包围盒 116

5.4.1 基础知识 116

5.4.2 一个简单案例的开发 117

5.5 本章小结 120

第6章 光照和阴影 121

6.1 光照的使用 121

6.1.1 基础知识 121

6.1.2 光照开发的案例 122

6.2 阴影的重要性 126

6.2.1 阴影可以帮助判断物体在三维空间中的位置关系 126

6.2.2 阴影可以反映接收体的

形状 127

6.2.3 阴影可以表现出一些当前视点看不见的物体的信息 127

6.2.4 通过阴影可以判断出光源的数目、位置 128

6.3 平面阴影 128

6.3.1 案例效果与基本原理 128

6.3.2 案例的开发步骤 129

6.4 投影贴图 133

6.5 多轮渲染 138

6.5.1 基本原理及实现策略 138

6.5.2 镜像技术的实现 138

6.5.3 高真实感水面倒影的实现 142

6.6 本章小结 147

第7章 3D粒子系统与拖尾效果的使用 148

7.1 3D粒子系统 148

7.1.1 基础知识 148

7.1.2 3D粒子系统编辑器Particle Universe Editor 150

7.1.3 一个简单粒子系统的制作 151

7.1.4 3D粒子系统展示案例 155

7.2 3D拖尾效果 160

7.2.1 基础知识 160

7.2.2 一个简单案例的开发 161

7.3 本章小结 163

第8章 杂项 164

8.1 正六边形瓦片地图 164

8.1.1 基本原理及特点 164

8.1.2 正六边形地图的设计 165

8.1.3 网格定位案例 168

8.2 正六边形地图的路径搜索 172

8.2.1 路径搜索示例基本框架的

搭建 172

8.2.2 广度优先路径搜索算法

BFS 178

8.2.3 广度优先路径搜索算法BFS的实现 179

8.2.4 Dijkstra路径搜索算法 185

8.2.5 Dijkstra路径搜索算法的

实现 186

8.2.6 用A*思想优化广度优先路径搜索 190

8.2.7 用A*思想优化Dijkstra路径搜索 192

8.3 手机截屏 193

8.3.1 基础知识 194

8.3.2 案例开发 194

8.4 本章小结 196

第9章 初识3D物理引擎Bullet 197

9.1 常用类的介绍 197

9.1.1 Vec3类—三维向量类 197

9.1.2 Mat4类—矩阵类 198

9.1.3 Physics3D类—

3D物理类 199

9.1.4 PhysicsSprite3D类—

3D物理精灵类 200

9.1.5 Physics3DRigidBody类—刚体类 201

9.1.6 Physics3DWorld类—

物理世界类 202

9.1.7 Physics3DShape类—

碰撞形状类 203

9.2 箱子撞击案例 204

9.2.1 案例运行效果 204

9.2.2 案例的基本框架结构 204

9.2.3 场景管理类—SceneManager类 205

9.2.4 信息布景类—

My2DLayer类 206

9.2.5 物理世界布景类—My3DLayer类 207

9.3 物体下落案例 212

9.3.1 案例运行效果 212

9.3.2 物体下落布景类—My3DLayer类 212

9.4 旋转的陀螺 214

9.4.1 案例运行效果 214

9.4.2 旋转的陀螺布景类—My3DLayer类 215

9.5 消失的木块 217

9.5.1 案例运行效果 217

9.5.2 消失的木块布景类—My3DLayer类 217

9.6 物体碰撞下落 219

9.6.1 案例运行效果 219

9.6.2 自定义物理世界类—MPhysicsWorld类 220

9.6.3 物体碰撞下落布景类—My3DLayer类 222

9.7 三角形网格形状的介绍 223

9.7.1 三角形索引数组类—btTriangleIndexVertex

Array类 223

9.7.2 层次包围结构三角形网格形状类—btBvhTriangleMesh

Shape类 224

9.7.3 层次包围结构三角形网格

形状类的案例—波动的

水纹 225

9.8 固定三角形网格形状类的介绍 229

9.8.1 固定三角形网格形状类—btGImpactMeshShape类 229

9.8.2 固定形状物体案例 230

9.9 本章小结 232

第10章 3D物理引擎Bullet—关节 233

10.1 初识3D关节 233

10.2 铰链关节 233

10.2.1 基础知识 233

10.2.2 案例开发 235

10.3 齿轮关节 237

10.3.1 基础知识 237

10.3.2 案例开发 237

10.4 点对点关节 240

10.4.1 基础知识 240

10.4.2 案例开发 240

10.5 滑动关节 242

10.5.1 基础知识 242

10.5.2 案例开发 243

10.6 六自由度关节 245

10.6.1 基础知识 245

10.6.2 案例开发 246

10.7 本章小结 250

第11章 3D物理引擎Bullet—

交通工具 251

11.1 交通工具类—

btRaycastVehicle类 251

11.2 交通工具的案例—

移动的小车 253

11.3 本章小结 258

第12章 3D物理引擎Bullet—

软体及光线投射 259

12.1 初识3D软体 259

12.2 软布 259

12.2.1 案例运行效果 260

12.2.2 软布布景类—

My3DLayer类 260

12.2.3 软布开发中需要注意的

问题 262

12.3 三角形网格软体案例 263

12.3.1 案例运行效果 263

12.3.2 三角形网格软体类—MyCustomSprite3D类 263

12.3.3 三角形网格软体布景类—My3DLayer类 265

12.4 绳索软体 265

12.4.1 案例运行效果 265

12.4.2 案例开发过程 266

12.5 光线投射 267

12.5.1 光线投射回调结构体Closest RayResultCallback 268

12.5.2 光线投射的案例—

旋转光线 268

12.6 本章小结 270

第13章 VR游戏开发 271

13.1 背景知识 271

13.1.1 发展历史 271

13.1.2 基本特征 273

13.1.3 关键技术 274

13.2 Cocos2d-x开发VR环境搭建 276

13.3 Cocos2d-x开发VR游戏前的

准备 279

13.4 Cardboard平台VR游戏的开发 280

13.4.1 背景知识 280

13.4.2 基础知识 281

13.4.3 VR场景漫游案例的准备

工作 282

13.4.4 VR场景漫游案例的开发 283

13.5 GearVR平台VR游戏的开发 286

13.5.1 背景知识 286

13.5.2 Oculus Home 287

13.5.3 基础知识 288

13.5.4 VR场景射击案例的准备

工作 288

13.5.5 VR场景射击案例的开发 290

13.6 本章小结 297

第14章 益智类游戏—指尖方块 298

14.1 游戏的背景及功能概述 298

14.1.1 游戏开发的背景概述 298

14.1.2 游戏的功能介绍 298

14.2 游戏的策划及准备工作 301

14.2.1 游戏的策划 301

14.2.2 游戏的准备工作 302

14.3 游戏的架构 305

14.3.1 游戏中各类的简要介绍 305

14.3.2 游戏的框架简介 306

14.4 游戏常量类—Constant 307

14.5 场景相关类 307

14.5.1 游戏场景管理类—SceneManager 307

14.5.2 欢迎布景类—

BeginLayer 310

14.5.3 主菜单场景布景类—MainMenuScene2D 311

14.5.4 帮助场景布景类—HelpLayer 315

14.5.5 设置场景布景类—SetLayer 317

14.5.6 选择关卡场景布景类—SelectGameLayer 319

14.6 游戏场景布景类 321

14.6.1 2D布景类—My2Dlayer 321

14.6.2 3D布景类—FirstLayer 321

14.7 辅助类 326

14.7.1 方块类—Cubes 326

14.7.2 地图类—GameMap 328

14.7.3 暂停和通关界面类—GameSet 329

14.7.4 机关类—Organ 332

14.7.5 碰撞检测类—Collision 334

14.8 引擎引用入口类—

AppDelegate 335

14.9 游戏的优化及改进 336

14.10 本章小结 337



第15章 射击解谜类游戏—绿色行动 338

15.1 游戏的背景及功能概述 338

15.1.1 游戏开发的背景概述 338

15.1.2 游戏的功能介绍 338

15.2 游戏的策划及准备工作 340

15.2.1 游戏的策划 340

15.2.2 游戏的准备工作 341

15.3 游戏的架构 346

15.3.1 游戏中各类的简要介绍 346

15.3.2 游戏的框架简介 347

15.4 游戏常量头文件—

AppConstant 348

15.5 游戏场景布景类 349

15.5.1 CG 1场景2D布景类—CG2DLayer 349

15.5.2 CG 1场景3D布景类—CG3DLayer 350

15.5.3 CG 2场景3D布景类—CG3Dlayer 354

15.5.4 主菜单场景2D布景类—

MainMenuScene2D 356

15.5.5 主菜单场景3D布景类—MainMenuScene3D 357

15.5.6 异步加载类—

LoadLayer 358

15.5.7 2D场景类的开发 360

15.5.8 3D场景类的开发 364

15.5.9 场景管理类的开发 377

15.6 辅助类 378

15.6.1 数据类—GameData 379

15.6.2 暂停和设置界面类—GameSet 380

15.6.3 音乐音效管理类—MusicManager 382

15.6.4 粒子系统管理类—ParticleManager 384

15.6.5 波动水面类Water 385

15.6.6 英雄类—Hero 389

15.7 引擎引用入口类—

AppDelegate 393

15.8 游戏的优化及改进 395

15.9 本章小结 395



展开全部

作者简介

吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,现任职于华北理工大学并兼任华北理工大学以升大学生创新实验中心移动及互联网软件工作室负责人。十多年来不但指导学生多次制作手游作品获得多项学科竞赛大奖,还为数十家著名企业培养了上千名高级软件开发人员。曾编写过《OpenGL ES 3.0游戏开发(上下卷)》、《Cocos2d-X案例开发大全》、《Cocos2d-X 3.X 游戏案例开发大全》、《Cocos2d-X 3.0游戏开发实战详解》、《Cocos2d-x游戏开发标准教程》、《Android游戏开发大全》(**版、第二版及第三版)等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列优秀的Android应用程序与3D游戏。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航