Cocos2d-x 3D与VR游戏开发实战详解 出版时间: 2017年版内容简介 内 容 提 要本书共分为15章,全面讲解了用Cocos2d-x引擎进行3D游戏开发的知识和开发技巧,首先介绍3D开发中使用到的相关Cocos2d-x基础类,包括加载模型、背面剪裁、摄像机、骨骼动画、异步加载和自定义着色器等,接下来介绍常用的3D开发技巧,如标志板技术、天空盒、立方图纹理、水特效和材质系统、Cocos2d-x引擎中的地形(Terrain类)和导航网格(NavMesh类),适合模拟室外的平原、高山、丘陵等,使游戏场景更加丰富,也讲解了拾取与包围盒、光照和阴影、3D粒子系统与拖尾效果的使用、正六边形瓦片地图、正六边形地图的路径搜素和手机截屏等方面的知识,以及Bullet物理引擎、VR游戏开发等知识,最后讲解了综合案例,包括益智类游戏—指尖方块和射击解谜类游戏—绿色行动,让读者学以致用。本书适合Cocos2d-x初学者、游戏开发者、程序员学习,也适合作为大专院校相关专业师生学习用书以及培训学校的教材。目 录第1章 初识Cocos2d-x/t11.1 Cocos2d-x的概述/t11.1.1 Cocos2d-x的发展史/t11.1.2 Cocos2d-x的市场前景/t21.2 Cocos2d-x开发环境的搭建/t21.2.1 Android Studio以及Android SDK的下载与配置/t21.2.2 Android NDK的下载与配置/t51.2.3 Cocos2d-x的下载与配置/t61.3 初识Cocos2d-x应用程序/t71.3.1 本书案例的导入与运行/t71.3.2 Cocos2d-x案例导入后的相关修改/t91.3.3 创建自己的项目/t91.4 本章小结/t12第2章 3D开发基础/t132.1 与3D开发相关的基础知识/t132.1.1 基础知识/t132.1.2 加载obj格式模型的案例/t182.1.3 背面剪裁/t232.1.4 摄像机背景画笔/t252.2 骨骼动画的使用/t272.2.1 基础知识/t272.2.2 c3b文件的生成/t282.2.3 加载骨骼动画的案例/t292.2.4 骨骼动画关键帧回调的使用/t322.3 3D精灵的异步加载/t352. 3.1 异步加载的基础知识/t352.3.2 3D精灵的异步加载案例/t352.4 三种基本变换的灵活使用/t392.4.1 背景知识/t392.4.2 桌球案例的实现策略/t402.4.3 案例的开发/t412.5 3D基本动作/t452.5.1 基础知识/t452.5.2 案例的开发/t452.6 自定义着色器基础/t472.6.1 背景知识/t472.6.2 Cocos2d-x中的相关方法/t472.6.3 自定义着色器案例/t482.7 本章小结/t51第3章 常用的3D开发技巧/t523.1 标志板技术的应用/t523.1.1 基础知识/t523.1.2 一个简单案例的开发/t533.2 天空盒/t573.2.1 基础知识/t573.2.2 一个简单案例的开发/t583.3 立方图纹理/t603.3.1 基础知识/t603.3.2 一个简单案例的开发/t603.4 让游戏更加灵动—水特效/t623.4.1 基础知识/t633.4.2 一个简单案例的开发/t633.5 压缩纹理的使用/t693.6 材质系统/t703.6.1 基础知识/t703.6.2 一个简单案例的开发/t713.7 本章小结/t74第4章 3D地形和导航网格/t754.1 地形的基础知识/t754.2 地形制作相关工具/t784.2.1 TerrainEditTool的下载/t784.2.2 TerrainEditTool的使用/t794.2.3 地形预烘焙贴图制作/t824.3 3D地形案例开发/t854.3.1 定向光照案例/t854.3.2 可变方向光照案例/t894.4 导航网格的相关类/t924.5 导航网格设计软件/t944.5.1 设计软件的下载与编译/t944.5.2 设计软件的使用/t964.6 导航网格案例/t984.7 本章小结/t103第5章 拾取与包围盒/t1045.1 AABB包围盒/t1045.1.1 基础知识/t1045.1.2 一个简单案例的开发/t1055.2 拾取/t1075.2.1 基础知识/t1075.2.2 一个简单案例的开发/t1085.3 AABB包围盒的不精确性/t1135.4 OBB包围盒/t1165.4.1 基础知识/t1165.4.2 一个简单案例的开发/t1175.5 本章小结/t120第6章 光照和阴影/t1216.1 光照的使用/t1216.1.1 基础知识/t1216.1.2 光照开发的案例/t1226.2 阴影的重要性/t1266.2.1 阴影可以帮助判断物体在三维空间中的位置关系/t1266.2.2 阴影可以反映接收体的形状/t1276.2.3 阴影可以表现出一些当前视点看不见的物体的信息/t1276.2.4 通过阴影可以判断出光源的数目、位置/t1286.3 平面阴影/t1286.3.1 案例效果与基本原理/t1286.3.2 案例的开发步骤/t1296.4 投影贴图/t1336.5 多轮渲染/t1386.5.1 基本原理及实现策略/t1386.5.2 镜像技术的实现/t1386.5.3 高真实感水面倒影的实现/t1426.6 本章小结/t147第7章 3D粒子系统与拖尾效果的使用/t1487.1 3D粒子系统/t1487.1.1 基础知识/t1487.1.2 3D粒子系统编辑器Particle Universe Editor/t1507.1.3 一个简单粒子系统的制作/t1517.1.4 3D粒子系统展示案例/t1557.2 3D拖尾效果/t1607.2.1 基础知识/t1607.2.2 一个简单案例的开发/t1617.3 本章小结/t163第8章 杂项/t1648.1 正六边形瓦片地图/t1648.1.1 基本原理及特点/t1648.1.2 正六边形地图的设计/t1658.1.3 网格定位案例/t1688.2 正六边形地图的路径搜索/t1728.2.1 路径搜索示例基本框架的搭建/t1728.2.2 广度优先路径搜索算法BFS/t1788.2.3 广度优先路径搜索算法BFS的实现/t1798.2.4 Dijkstra路径搜索算法/t1858.2.5 Dijkstra路径搜索算法的实现/t1868.2.6 用A*思想优化广度优先路径搜索/t1908.2.7 用A*思想优化Dijkstra路径搜索/t1928.3 手机截屏/t1938.3.1 基础知识/t1948.3.2 案例开发/t1948.4 本章小结/t196第9章 初识3D物理引擎Bullet/t1979.1 常用类的介绍/t1979.1.1 Vec3类—三维向量类/t1979.1.2 Mat4类—矩阵类/t1989.1.3 Physics3D类—3D物理类/t1999.1.4 PhysicsSprite3D类—3D物理精灵类/t2009.1.5 Physics3DRigidBody类—刚体类/t2019.1.6 Physics3DWorld类—物理世界类/t2029.1.7 Physics3DShape类—碰撞形状类/t2039.2 箱子撞击案例/t2049.2.1 案例运行效果/t2049.2.2 案例的基本框架结构/t2049.2.3 场景管理类—SceneManager类/t2059.2.4 信息布景类—My2DLayer类/t2069.2.5 物理世界布景类—My3DLayer类/t2079.3 物体下落案例/t2129.3.1 案例运行效果/t2129.3.2 物体下落布景类—My3DLayer类/t2129.4 旋转的陀螺/t2149.4.1 案例运行效果/t2149.4.2 旋转的陀螺布景类—My3DLayer类/t2159.5 消失的木块/t2179.5.1 案例运行效果/t2179.5.2 消失的木块布景类—My3DLayer类/t2179.6 物体碰撞下落/t2199.6.1 案例运行效果/t2199.6.2 自定义物理世界类—MPhysicsWorld类/t2209.6.3 物体碰撞下落布景类—My3DLayer类/t2229.7 三角形网格形状的介绍/t2239.7.1 三角形索引数组类—btTriangleIndexVertexArray类/t2239.7.2 层次包围结构三角形网格形状类—btBvhTriangleMeshShape类/t2249.7.3 层次包围结构三角形网格形状类的案例—波动的水纹/t2259.8 固定三角形网格形状类的介绍/t2299.8.1 固定三角形网格形状类—btGImpactMeshShape类/t2299.8.2 固定形状物体案例/t2309.9 本章小结/t232第10章 3D物理引擎Bullet—关节/t23310.1 初识3D关节/t23310.2 铰链关节/t23310.2.1 基础知识/t23310.2.2 案例开发/t23510.3 齿轮关节/t23710.3.1 基础知识/t23710.3.2 案例开发/t23710.4 点对点关节/t24010.4.1 基础知识/t24010.4.2 案例开发/t24010.5 滑动关节/t24210.5.1 基础知识/t24210.5.2 案例开发/t24310.6 六自由度关节/t24510.6.1 基础知识/t24510.6.2 案例开发/t24610.7 本章小结/t250第11章 3D物理引擎Bullet—交通工具/t25111.1 交通工具类—btRaycastVehicle类/t25111.2 交通工具的案例—移动的小车/t25311.3 本章小结/t258第12章 3D物理引擎Bullet—软体及光线投射/t25912.1 初识3D软体/t25912.2 软布/t25912.2.1 案例运行效果/t26012.2.2 软布布景类—My3DLayer类/t26012.2.3 软布开发中需要注意的问题/t26212.3 三角形网格软体案例/t26312.3.1 案例运行效果/t26312.3.2 三角形网格软体类—MyCustomSprite3D类/t26312.3.3 三角形网格软体布景类—My3DLayer类/t26512.4 绳索软体/t26512.4.1 案例运行效果/t26512.4.2 案例开发过程/t26612.5 光线投射/t26712.5.1 光线投射回调结构体Closest RayResultCallback/t26812.5.2 光线投射的案例—旋转光线/t26812.6 本章小结/t270第13章 VR游戏开发/t27113.1 背景知识/t27113.1.1 发展历史/t27113.1.2 基本特征/t27313.1.3 关键技术/t27413.2 Cocos2d-x开发VR环境搭建/t27613.3 Cocos2d-x开发VR游戏前的准备/t27913.4 Cardboard平台VR游戏的开发/t28013.4.1 背景知识/t28013.4.2 基础知识/t28113.4.3 VR场景漫游案例的准备工作/t28213.4.4 VR场景漫游案例的开发/t28313.5 GearVR平台VR游戏的开发/t28613.5.1 背景知识/t28613.5.2 Oculus Home/t28713.5.3 基础知识/t28813.5.4 VR场景射击案例的准备工作/t28813.5.5 VR场景射击案例的开发/t29013.6 本章小结/t297第14章 益智类游戏—指尖方块/t29814.1 游戏的背景及功能概述/t29814.1.1 游戏开发的背景概述/t29814.1.2 游戏的功能介绍/t29814.2 游戏的策划及准备工作/t30114.2.1 游戏的策划/t30114.2.2 游戏的准备工作/t30214.3 游戏的架构/t30514.3.1 游戏中各类的简要介绍/t30514.3.2 游戏的框架简介/t30614.4 游戏常量类—Constant/t30714.5 场景相关类/t30714.5.1 游戏场景管理类—SceneManager/t30714.5.2 欢迎布景类—BeginLayer/t31014.5.3 主菜单场景布景类—MainMenuScene2D/t31114.5.4 帮助场景布景类—HelpLayer/t31514.5.5 设置场景布景类—SetLayer/t31714.5.6 选择关卡场景布景类—SelectGameLayer/t31914.6 游戏场景布景类/t32114.6.1 2D布景类—My2Dlayer/t32114.6.2 3D布景类—FirstLayer/t32114.7 辅助类/t32614.7.1 方块类—Cubes/t32614.7.2 地图类—GameMap/t32814.7.3 暂停和通关界面类—GameSet/t32914.7.4 机关类—Organ/t33214.7.5 碰撞检测类—Collision/t33414.8 引擎引用入口类—AppDelegate/t33514.9 游戏的优化及改进/t33614.10 本章小结/t337第15章 射击解谜类游戏—绿色行动/t33815.1 游戏的背景及功能概述/t33815.1.1 游戏开发的背景概述/t33815.1.2 游戏的功能介绍/t33815.2 游戏的策划及准备工作/t34015.2.1 游戏的策划/t34015.2.2 游戏的准备工作/t34115.3 游戏的架构/t34615.3.1 游戏中各类的简要介绍/t34615.3.2 游戏的框架简介/t34715.4 游戏常量头文件—AppConstant/t34815.5 游戏场景布景类/t34915.5.1 CG 1场景2D布景类—CG2DLayer/t34915.5.2 CG 1场景3D布景类—CG3DLayer/t35015.5.3 CG 2场景3D布景类—CG3Dlayer/t35415.5.4 主菜单场景2D布景类—MainMenuScene2D/t35615.5.5 主菜单场景3D布景类—MainMenuScene3D/t35715.5.6 异步加载类—LoadLayer/t35815.5.7 2D场景类的开发/t36015.5.8 3D场景类的开发/t36415.5.9 场景管理类的开发/t37715.6 辅助类/t37815.6.1 数据类—GameData/t37915.6.2 暂停和设置界面类—GameSet/t38015.6.3 音乐音效管理类—MusicManager/t38215.6.4 粒子系统管理类—ParticleManager/t38415.6.5 波动水面类Water/t38515.6.6 英雄类—Hero/t38915.7 引擎引用入口类—AppDelegate/t39315.8 游戏的优化及改进/t39515.9 本章小结/t395 上一篇: React快速上手开发 下一篇: React Native开发指南