Cocos2d-x游戏编程——C++篇(含CD光盘1张)

综合评级:
★★★★★

定价:
¥69.80

作者:
徐飞 著

出版社:
电子工业出版社

出版日期:
2015年9月

页数:
372

字数:
595200

ISBN:
9787121270291

书籍介绍

本书基于Cocos2d-x引擎,使用C++作为开发语言,内容涉及从手机游戏开发到发布各方面的知识。本书分为4部分:基础篇、3D篇、网络篇和高级篇。其中,基础篇包括Cocos2d-x基础知识、基础类等知识;3D篇包括引擎的3D知识、引擎中涉及的数学知识、可编程管道着色;网络篇包括HTTP编程和Socket编程:高级篇包括游戏中的适配知识、自动更新、跨平台编译和iOS、Android平台功能的开发。

作者简介

作者于2010年毕业于北京理工大学计算机系,之后一直从事游戏开发工作,开发过“魔法”、“热舞派对”、“加勒比海大富翁”等街机游戏。2013年转入手游开发,上线了后宫养成RPG游戏“三宫六院”、棋牌游戏“真人斗地主2”,其中,“真人斗地主2”累积注册用户超过五千万。

目录

第1章Cocos2d-x基础知识

1.1引擎组织结构

1.2从2.x到3.x的变化

1.2.1类名变化

1.2.2单件类变化

1.2.3宏定义与结构的变化

1.2.4回调函数变化

1.2.5事件响应机制的变化

1.3Cocos2d-x中的C++11知识

1.3.1Lambda表达式

1.3.2bind函数

1.3.3function函数

1.3.4auto和nullptr

1.3.5override和final

1.4小结

第2章基础类

2.1Director类

2.1.1场景函数

2.1.2视图信息函数

2.1.3管理器函数

2.1.4控制函数

2.2高级节点类

2.2.1Node类

2.2.2Scene类

2.2.3Layer类

2.2.4Sprite类

2.3文字类

2.3.1LabelTTF方式

2.3.2LabelAtlas方式

2.3.3LabelBMFont方式

2.4菜单类

2.4.1文字按钮

2.4.2图片按钮

2.4.3切换按钮

2.4.4XJMenu按钮

2.5列表类

2.5.1ScrollView类

2.5.2TableView类

2.6其他类

2.6.1SpriteBatchNode类

2.6.2DrawNode类

2.6.3Scale9Sprite类

2.6.4EditBox类

2.6.5RenderTexture类

2.7小结

第3章动画

3.1ActionManager类

3.2瞬时动画

3.2.1可见性动画

3.2.2翻转动画

3.2.3回调动画

3.2.4Place动画

3.2.5RemoveSelf动画

3.3延时动画

3.3.1移动动画

3.3.2旋转动画

3.3.3缩放动画

3.3.4扭曲动画

3.3.5跳跃动画

3.3.6淡入淡出动画

3.3.7Tint动画

3.3.8Blink动画

3.3.9Bezier动画

3.3.10DelayTime动画

3.3.11重复动画

3.3.12Sequence动画

3.3.13Spawn动画

3.3.14序列帧动画

3.3.15进度动画

3.4缓冲动画

3.4.1弹性动画

3.4.2跳跃动画

3.4.3指数动画

3.4.4Sine动画

3.4.5回震动画

3.4.6Ease动画

3.5Speed动画

3.6Follow动画

3.7ActionTimeline动画

3.8动画特效

3.8.1Grid3DAction动画

3.8.2TiledGrid3DAction动画

3.9小结

第4章定时器与事件响应机制

4.1定时器

4.1.1Scheduler类

4.1.2Node定时器

4.2事件响应机制

4.2.1EventDispatcher类

4.2.2EventListener类

4.2.3触摸事件

4.2.4键盘事件

4.2.5鼠标事件

4.2.6加速器事件

4.2.7Event类

4.2.8EventTouch类

4.2.9EventKeyboard类

4.2.10EventMouse类

4.2.11EventAcceleration类

4.3小结

第5章粒子系统

5.1普通粒子系统

5.1.1粒子结构

5.1.2ParticleSystem类

5.1.3ParticleSystemQuad类

5.1.4实例

5.1.5粒子编辑器

5.23D粒子

5.2.1ParticleSystem3D类

5.2.2PUParticleSystem3D类

5.2.3材质文件

5.2.4粒子文件

5.2.5粒子使用

5.3小结

第6章声音

6.1SimpleAudioEngine类

6.1.1背景音乐

6.1.2音效

6.2AudioEngine类

6.3小结

第7章Cocos2d-x中的3D技术

7.1模型

7.1.1模型格式

7.1.2Sprite3D类

7.1.3动画相关类

7.1.4坐标系

7.2模型挂接与换装

7.2.1挂接

7.2.2换装

7.3相机

7.3.1相机类

7.3.2相机类型

7.3.3遮罩

7.3.4视锥体裁剪

7.3.5自由相机

7.3.6弧度相机

7.3.7**人称相机

7.3.8第三人称相机

7.4光照

7.4.1灯光基础

7.4.2环境光

7.4.3方向光

7.4.4点光源

7.4.5聚光灯

7.5碰撞检测

7.5.12D包围盒检测

7.5.2距离检测

7.5.3AABB检测

7.5.4OBB检测

7.5.5Ray检测

7.6Billboard

7.7多线程资源加载

7.82D与3D混合

7.9DrawNode3D类

7.10展望

第8章数学库

8.1向量

8.2矩阵

8.2.1矩阵的创建

8.2.2向量和值的提取

8.2.3零矩阵和单位矩阵

8.2.4负矩阵

8.2.5矩阵算术运算

8.2.6平移、旋转和缩放

8.2.7矩阵转置

8.2.8方阵

8.2.9逆矩阵

8.3四元素

8.3.1四元素的创建

8.3.2零四元素和单位四元素

8.3.3负四元素

8.3.4四元素的模

8.3.5四元素共轭

8.3.6逆四元素

8.3.7四元素点乘

8.3.8四元素叉乘

8.3.9线性插值

8.3.10slerp插值

8.3.11squad插值

8.3.12四元素的运用

8.4Size类

8.5Rect类

8.6小结

第9章Shader编程

9.1GLSL基础

9.1.1HelloWorld

9.1.2数据类型

9.1.3数组和结构

9.1.4类型限定

9.1.5参数限定

9.1.6操作符

9.1.7流程控制

9.1.8函数

9.1.9顶点着色

9.1.10片段着色

9.1.11内置变量

9.1.12内置函数

9.2Cocos2d-x对Shader的处理

9.2.1GLProgram

9.2.2GLProgramCache

9.2.3GLProgramState

9.2.4GLProgramStateCache

9.32D特效

9.3.1水平翻转

9.3.2垂直翻转

9.3.3图像变灰

9.3.4图像反色

9.3.5图像噪点

9.3.6图像模糊

9.3.7马赛克

9.3.8浮雕效果

9.3.9边缘检测

9.43D特效

9.4.1环境光

9.4.2散射光

9.4.3镜面光

9.4.4雾

9.4.5波光

9.4.6UV动画

9.4.7伪阴影

9.4.8卡通着色

9.4.9模型轮廓

9.5小结

第10章HTTP编程

10.1libcurl基础知识

10.1.1global函数

10.1.2init和cleanup函数

10.1.3setopt函数

10.1.4表单函数

10.1.5perform函数

10.2pthread基础知识

10.2.1线程管理

10.2.2互斥变量

10.2.3条件变量

……

前言

  前 言

  随着智能手机的普及,相关的应用犹如雨后春笋般涌现。其中,游戏扮演着一个重要的角色,和端游、页游形成三足鼎立之势。例如,卡牌类游戏我叫MT、大掌门、放开那三国、名将无双和萌江湖等;RPG类游戏天龙八部3D、仙剑奇侠传、全民奇迹和秦时明月等;跑酷类游戏神庙逃亡、天天酷跑、熊大快跑2015、爸爸去哪儿2、奔跑吧兄弟、天天风之旅等;塔防类游戏植物大战僵尸2、保卫萝卜等;三消类游戏PopStar、天天星连萌、天天爱消除和开心消消乐等;音乐类游戏节奏大师、乐动达人、全民炫舞和乐动魔方手机版(jukebeat);街机类游戏捕鱼达人系列、拳皇2014和狂野飙车8:急速凌云等不乏精品。

  目前市面上两款比较火的手机游戏开发引擎要属Unity3D和Cocos2d-x,前者多用于3D游戏的开发,后者在3.0版本之前是一款2D游戏开发引擎,在3.0后引入了对3D开发的支持,随着版本的升级,3D开发功能也越来越完善。上面介绍的游戏中,有很多是使用Cocos2d-x引擎开发的。例如,我叫MT、大掌门、秦时明月、保卫萝卜、开心消消乐、放开那三国、仙剑奇侠传和捕鱼达人系列等。

  本书以Cocos2d-x引擎为基础,以C++作为开发语言,内容涉及从手机游戏开发到发布各个方面的知识,主要可以分为4篇:基础篇、3D篇、网络篇和高级篇。其中,各个篇的内容如下。

  1.基础篇

  基础篇共6章,各章的具体情况如下:

  第1章介绍引擎的基础知识,内容包括Cocos2d-x引擎的组织结构、Hello World项目的创建、版本变化和C++ 11标准中的一些知识。

  第2章介绍引擎中的一些基础类和常用类,分为6个部分讲解:Director类、高级节点类(如Scene、Layer、Sprite等)、文字相关类(如LabelTTF、Label和Text类等)、菜单类Menu、列表类和一些其他常用类(如SpriteBatchNode、Scale9Sprite和EditBox等)。

  第3章介绍动画,动画有多种类型,如瞬时动画、延时动画、缓冲动画、Speed动画、Follow动画、ActionTimeLine动画和一些特效动画。

  第4章介绍引擎中的定时器和事件响应机制。其中,定时器有全局和Node之分,事件响应负责处理界面单击事件等操作。

  第5章介绍粒子系统,分为普通的2D粒子特效和3D粒子特效。

  第6章介绍引擎中的声音,有两种方式:SimpleAudioEngine和AudioEngine。

  2.3D篇

  3D篇有3章,各章的具体情况如下:

  第7章介绍引擎中的3D知识,内容涉及模型、动画、相机、光照和碰撞检测等。

  第8章讲解引擎中的数学知识,内容有向量、矩阵、四元素、Size类和Rect类。

  第9章从GLSL语言基础知识、Cocos2d-x着色相关类、2D和3D特效4个方面介绍可编程管道着色。

  3.网络篇

  网络篇有2章,各章的具体情况如下:

  第10章介绍HTTP编程,内容涉及libcurl和pthread库的基础知识、游戏中基本的数据通信、文件的上传和下载,以及C++ 11标准中的线程库std::thread。

  第11章介绍Socket编程,内容有select函数介绍、Socket编程中的一些常用函数和数据通信的实现。

  4.高级篇

  高级篇有5章,各章的具体情况如下:

  第12章介绍游戏中的适配知识,从资源、设计和屏幕分辨率三个方面来讲解。

  第13章介绍在Android平台下怎样实现代码和资源的自动更新,分为3方面的知识:怎么实现代码和资源的管理、代码文件更新和资源文件更新。

  第14章介绍游戏中资源的加密和解密操作,有2.x版本和3.5版本之分。

  第15章介绍跨平台编译到iOS平台;iOS平台下一些功能的开发,如经纬度、照相和应用内购买;真机调试和游戏的发布。

  第16章介绍跨平台编译到Android平台;C++和Java语言的互调;该平台下一些功能的开发,如经纬度、照相等。

  本书中涉及作者编写的类以“XJ”开头,和引擎2.x版本中的“CC”功能一样,只是一种命名的方式,前9章的知识都是基于引擎3.5版本编写的,在后几章知识的讲解中以引擎2.2.3版本为基础,但这部分涉及引擎的知识不多,大部分在光盘中都有提供2.2.3和3.5两个版本的代码,读者在阅读的过程中可以对照参考,如果读者仔细阅读了第1章的知识,理解这两个版本的代码应该不是什么难事。

  感谢我的研究生导师,北京理工大学的王全玉老师,是他把我带进虚拟现实的世界,让我毕业后就能从事游戏开发的工作;感谢电子工业出版社的王敬栋和张迪两位老师,没有二位老师的帮助,该书就不会顺利出版;感谢我的爷爷奶奶和父母,是他们把我抚育成人;感谢我亲爱的妻子和可爱的儿子,在我创业期间给予我无微不至的关怀和理解。

  本书通过16章讲解游戏的编写,但由于作者水平有限,书中难免会存在缺点和不足,殷切希望广大读者通过电子邮件(cocos2dx_net@163.com)批评指正。

  徐 飞

  2015年5月3日于深圳

课课家教育

未登录