Cocos2d-x高级开发教程

出版社:人民邮电出版社
出版日期:2013-6-1
ISBN:9787115317964
作者:火烈鸟网络科技
页数:305页

章节摘录

版权页:   插图:   11.4可编程管线 正如本章开始所说的那样,在Cocos2d—x中,最大的变革就是引入了OpenGL ES 2.0作为底层绘图,这意味着渲染从过去的固定管线升级到了可编程管线,我们可以通过着色器定义每一个顶点或像素的着色方式,产生更丰富的效果。着色器实际上就是一小段执行渲染效果的程序,由图形处理单元执行。之所以说是“一小段”,是因为图形渲染的执行周期非常短,不允许过于臃肿的程序,因此通常都比较简短。 11.4.1 可编程着色器 在渲染流水线上,存在着两个对开发者可见的可编程着色器,具体如下所示。 口顶点着色器(vertex shader)。对每个顶点调用一次,完成顶点变换(投影变换和视图模型变换)、法线变换与规格化、纹理坐标生成、纹理坐标变换、光照、颜色材质应用等操作,并最终确定渲染区域。在Cocos2d—X的世界中,精灵和层等都是矩形,它们的一次渲染会调用4次顶点着色器。 口段着色器(fragment shader,又称片段着色器)。这个着色器会在每个像素被渲染的时候调用,也就是说,如果我们在屏幕上显示一张320 X 480的图片,那么像素着色器就会被调用153 600次。所幸,在显卡中通常存在不止一个图形处理单元,渲染的过程是并行化的,其渲染效率会比用串行的CPU执行高得多。 这两个着色器不能单独使用,必须成对出现,这是因为顶点着色器会首先确定每一个显示到屏幕上的顶点的属性,然后这些顶点组成的区域被化分成一系列像素,这些像素的每一个都会调用一次段着色器,最后这些经过处理的像素显示在屏幕上,二者是协同工作的。 进一步深入介绍的就是顶点着色器编程语言和编程方法了。这里我们并不打算这么做,一来这是一门足够高深的学问,绝不是一两章能说清楚的;二来我们可以找到足够多的开源的着色器,能够提供各种丰富的效果,实际上需要自己编写着色器的场合并不太多。因此这里我们将着重介绍如何在Cocos2d—x游戏中导人自定义的着色器效果。

名人推荐

“Cocos2d-x是移动跨平台开发最流行的游戏引擎,而《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关知识点。此外,书中的教学资源获得《捕鱼达人》手机游戏的授权,读者可以从一流游戏开发中高起点地开始一段学习,掌握宝贵的开发经验。“《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》不是一本简单的参考书,更像一本教科书,无论初学者还是具备一定游戏开发经验的人,都将开始一段精彩而奇幻的游戏开发之旅。书中充分考虑了实用性,不仅讨论了Cocos2d-x本身的知识点,而且涵盖了诸如联网、OpenGL ES、地图工具、跨平台移植以及HTML5游戏版本移植等方面的内容。读者可以方便地学以致用,在移动互联网飞速发展的今天迅速把握流行趋势,高效地掌握游戏开发技巧。”——gagaga,CocoaChina开发社区版主“《捕鱼达人》能获取巨大的用户量,首先要感谢Cocos2d-x的跨平台特性,它使更多的用户可以在第一时间体验炫酷的游戏。这是一本Cocos2d-x进阶教程,可以帮助开发者打造一款完整的游戏。《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》仿佛是《捕鱼达人1》立项到上线的所有技术难题解决方案的汇总,让我备感亲切。”——樊少强,触控科技技术副总监,《捕鱼达人》的制作人

内容概要

马朔  广州火烈鸟网络科技有限公司CEO,带领团队参与了《捕鱼达人》系列游戏的技术开发以及Cocos2d-x for Windows Phone 7的技术移植。在学生时代就曾受苹果公司邀请作为中国高校学生代表赴美参加WWDC(苹果全球开发者大会)。 尹航  广州火烈鸟网络科技有限公司CTO,从事移动游戏的研发工作。曾经参与Cocos2d-x for Windows Phone 7引擎的开发,负责《捕鱼达人》系列游戏Windows Phone版本的移植工作,并参与了多个移动游戏项目的开发,拥有丰富的游戏开发经验。

书籍目录

第一部分 引擎基础
第1章 Hello Cocos2d-x  2
1.1  引擎简介  2
1.2  搭建开发环境  3
1.3  Hello World  5
1.4  Hello World分析  6
1.5  测试样例简介  10
1.6  小结  11
第2章 在游戏开始之前  12
2.1  基本概念  12
2.1.1  场景与流程控制  12
2.1.2  层  13
2.1.3  精灵  14
2.1.4  节点与渲染树  14
2.1.5  动作与动画  16
2.2  Cocos2d-x代码风格  16
2.2.1  命名空间与类名称  16
2.2.2  构造函数与初始化  17
2.2.3  选择器  18
2.2.4  属性  19
2.2.5  单例  20
2.3  C++中的Cocos2d-x内存管理  21
2.3.1  复杂的内存管理  21
2.3.2  现有的智能内存管理技术  21
2.3.3  Cocos2d-x的内存管理机制  22
2.3.4  工厂方法  25
2.3.5  关于对象传值  26
2.3.6  释放:release()还是autorelease()?  26
2.3.7  容器  27
2.3.8  相关辅助宏  28
2.3.9  Cocos2d-x内存管理原则  28
2.4  生命周期分析  29
2.5  小结  31
第3章 游戏的基本元素  32
3.1  CCDirector:大总管  32
3.2  CCScene:场景  33
3.3  CCLayer:层  34
3.4  CCSprite:精灵  35
3.4.1  纹理  35
3.4.2  创建精灵  35
3.4.3  设置精灵的属性  36
3.4.4  向层中添加精灵  36
3.4.5  常用成员  38
3.5  CCNode与坐标系  39
3.5.1  坐标系与绘图属性  40
3.5.2  节点的组织  43
3.5.3  定时器事件  44
3.5.4  其他事件  46
3.6  Cocos2d-x内置的常用层  46
3.7  Cocos2d-x调度原理  49
3.7.1  游戏主循环  50
3.7.2  定时调度器  53
3.8  小结  58
第4章 动作  60
4.1  基本概念  60
4.2  瞬时动作  61
4.3  持续性动作  62
4.3.1  位置变化动作  63
4.3.2  属性变化动作  64
4.3.3  视觉特效动作  65
4.3.4  控制动作  65
4.4  复合动作  66
4.5  变速动作  68
4.6  使鱼动起来  70
4.7  创建自定义动作  74
4.7.1  一点简单的物理知识  74
4.7.2  创建自定义动作  75
4.8  让动作更平滑流畅  77
4.9  Cocos2d-x动作原理  79
4.9.1  动作类的结构  79
4.9.2  动作的更新  80
4.9.3  CCActionManager的工作原理  81
4.10  小结  83
第5章 动画与场景特效  84
5.1  动画  84
5.1.1  概述  84
5.1.2  使用动画  85
5.2  场景特效  86
5.3  小结  87
第6章 音乐与音效  88
6.1  使用音效引擎  88
6.2  支持格式  89
6.3  播放音乐与音效  89
6.3.1  预加载  89
6.3.2  播放与停止  90
6.3.3  暂停与恢复播放  90
6.3.4  其他成员  91
6.4  小结  92
第7章 用户输入  93
7.1  触摸输入  93
7.1.1  使用CCLayer响应触摸事件  93
7.1.2  两种Cocos2d-x触摸事件  94
7.2  触摸分发器原理  97
7.3  触摸中的陷阱  100
7.4  使用触摸事件  100
7.4.1  使炮台动起来  100
7.4.2  识别简单的手势  103
7.5  加速度计  105
7.6  文字输入  107
7.7  小结  110
第二部分 引擎进阶
第8章 粒子效果  114
8.1  Cocos2d-x中的粒子系统  114
8.2  粒子效果编辑器  117
8.2.1  界面介绍  117
8.2.2  制作火焰特效  121
8.3  小结  124
第9章 大型地图  125
9.1  瓦片地图  125
9.2  编辑器  126
9.2.1  Tiled Map Editor简介  126
9.2.2  创建水底世界  127
9.3  导入游戏  131
9.4  实现层次感  132
9.5  预定义属性  135
9.6  小结  135
第10章 Cocos2d-x绘图原理及优化  136
10.1  OpenGL基础  136
10.1.1  OpenGL简介  136
10.1.2  绘图  140
10.1.3  矩阵与变换  143
10.2  Cocos2d-x绘图原理  145
10.2.1  精灵的绘制  145
10.2.2  渲染树的绘制  147
10.2.3  坐标变换  150
10.3  TexturePacker与优化  152
10.3.1  绘图瓶颈  152
10.3.2  碎图压缩与精灵框帧  153
10.3.3  批量渲染  154
10.3.4  色彩深度优化  156
10.4  小结  157
第11章 OpenGL绘图技巧  159
11.1  自定义绘图  159
11.2  遮罩层  161
11.3  数据交流  164
11.4  可编程管线  168
11.4.1  可编程着色器  168
11.4.2  CCGLProgram  168
11.4.3  变量传递  169
11.5  水纹效果  170
11.5.1  着色器程序  171
11.5.2  ShaderNode类  172
11.5.3  uniform变量准备  174
11.5.4  绘制  175
11.5.5  添加到场景  176
11.6  CCGrid3D  177
11.7  再议效率  178
11.8  小结  179
第12章 物理引擎  180
12.1  新的超级武器  180
12.2  Box2D引擎简介  181
12.3  接入Box2D  181
12.4  更新状态  184
12.5  调试绘图  186
12.6  碰撞检测  187
12.7  弹射  189
12.8  精确碰撞  190
12.9  小结  191
第三部分 游戏开发进阶
第13章 数据持久化  194
13.1  CCUserDefault  194
13.2  格式化存储  194
13.3  本地文件存储  196
13.4  XML与JSON  196
13.5  加密与解密  200
13.6  SQLite  201
13.7  小结  205
第14章 网络  206
14.1  网络传输架构  206
14.2  CURL  206
14.3  简单传输  207
14.4  非阻塞传输  209
14.5  用户记录  211
14.6  多人对战与同步问题  211
14.6.1  时间同步  212
14.6.2  鱼群同步  212
14.7  校验  213
14.8  小结  213
第15章 缓存与池  215
15.1  移动设备昂贵的CPU与内存  215
15.2  缓存机制:预加载与重复使用  216
15.3  Cocos2d-x中的缓存  216
15.3.1  CCTextureCache  216
15.3.2  CCSpriteFrameCache  217
15.3.3  CCAnimationCache  217
15.4  对象池机制:可回收与重复使用  218
15.5  对象池实现  218
15.6  落实到工厂方法  221
15.7  一个简单的性能测试  222
15.8  使用时机  223
15.9  小结  224
第16章 并发编程  225
16.1  单线程的尴尬  225
16.2  pthread  225
16.3  线程安全  226
16.4  线程间任务安排  227
16.5  并发编程辅助  228
16.6  小结  233
第四部分 多平台
第17章 多平台下的Cocos2d  236
17.1  Windows 8  236
17.2  Windows Phone平台  237
17.3  Cocos2d-HTML5  237
17.4  移植  238
17.5  小结  238
第18章 可视化开发  239
18.1  CocosBuilder可视化开发  239
18.2  使用CocosBuilder创建场景  239
18.3  在Cocos2d-x项目中使用场景  241
18.4  小结  242
第19章 Cocos2d-HTML5   243
19.1  概述  243
19.2  开发流程  244
19.2.1  开发环境介绍  245
19.2.2  搭建开发环境  245
19.2.3  开始开发  249
19.3  代码安全  255
19.4  小结  257
第20章 移植  258
20.1  命名原则  258
20.1.1  类名称  258
20.1.2  类函数  259
20.1.3  属性  259
20.1.4  选择器  260
20.1.5  全局变量、函数与宏  260
20.2  跨语言移植  262
20.2.1  第一阶段:代码移植  262
20.2.2  第二阶段:消除平台差异  265
20.2.3  第三阶段:优化  268
20.3  小结  269
第五部分 实战篇
第21章 实战演练——开发自己的《捕鱼达人》  272
21.1  开发前的准备  273
21.1.1  视图  273
21.1.2  模型  274
21.1.3  控制器  275
21.2  开始开发  275
21.2.1  第一轮迭代  275
21.2.2  第二轮迭代  289
21.2.3  第三轮迭代  293
附录A  把游戏部署到Android平台  299

编辑推荐

《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》是国内第一本全面深入讲解Cocos2d-x进阶内容的图书,Cocos2d-x创始人王哲作序推荐,《捕鱼达人》开发人员力作;《捕鱼达人》代码大揭秘,传授大家如何做一个《捕鱼达人》的原型。

作者简介

Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关知识点。此外,书中的教学资源获得《捕鱼达人》手机游戏的授权,读者可以从一流游戏开发中高起点地开始一段学习,掌握宝贵的开发经验。


 Cocos2d-x高级开发教程下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     买这本书的时间是13年7月26日,地点是在酒仙桥的人人游戏 。开始做《采药英雄》是13年1月份,也就是从开始研究cocos2d-x 到现在已经有一年半的时间了。cocos2d-x 也从2.0.1到现在的3.0版本了。这一年半,我经历了很多。同事引我走上cocos2d-x的道路 。做第一个在Appstore上线的游戏 。进入人人,人人裁员。得益于独立做过一个小游戏 ,我上手还算快。得益于我喜欢研究代码,现在在项目组是比较熟悉底层的一个人了。人人的经历很短暂,但却让我学到了很多东西,主要是管理方面的。暂且不表,如果要用核心概括,我想是调动下属积极性,对下属好,和领导沟通好。翻看以前的备忘,我要自己在乐动不要忘记下面三点:1.跳出细节,思考流程上有哪些可优化之处2.时常想想,还有哪些事情没有做3.如果觉得自己无事可做或者不忙,说明自己有了问题 其实还应该有一句“精确定位客户需求,超出预期”本书其实还不错,应该算所有写Cocos2d-x的书中最好的一本(我看到过的)。但我还是建议新人朋友们不要用看书的方式学习一套引擎。我当时的方法是学一下最简单的游戏如何实现(也就是 cocos2d-x 源码例子中的SimpleGame),然后自己独立做一个游戏 ,这个过程中有什么问题就查资料。等完整做完一个游戏后,再看一本书,做一个系统化和梳理 。这也将成为我以后学习引擎的一个固定方法。回到本书。有两个地方我特别注意了 一下。一个是事件,一个是绘图的优化。事件:事件分为标准事件(standard)和带目标事件(target)两种。标准 事件可以多点触摸,带目标为单点。标准事件无优先级,带目标事件设置优先级(优先级越负,优先级越高)。带目标的事件可以设置在收到事件后,将事件吞噬(在addDelaget中设置)。带目标的情况 下,touchbegin返回true 后,touchmove ,touchend 才会继续执行。绘图优化:绘图优化三问题:1.纹理过小。2的N次方问题(使用碎图压缩工具解决,如TexturePacker)2.纹理切换太频繁(使用碎图压缩后。将所有小图放在一个纹理上,解决了纹理切换的问题。使用的方法是CCSpriteFrameCache,在创建精灵时,使用createWithSpriteFrameName 使用CCSpriteBatchNode批量渲染,减少节点绘图提交的次数。方法是将BatchNode加入到父节点上。)3.纹理过大。(降低图片的色值。方法为使用textpacker的收费版。tinypng可以降低存储图片的大小,据说是使用了索引色)看完这本书,我也要继续openGL的征途了
  •     介绍cocos2d-x Hello World工程,作为入门教程看很不错的.我的博客:http://www.einverne.tk/2013/10/cocos2d.htmlbox下载电子版https://app.box.com/s/e3hbjgyvaqx4w5lh9ffb我会陆续分享一些cocos2d-x书籍https://app.box.com/s/s8wcpcop7x4nwstw2flv

精彩短评 (总计41条)

  •     排版不错;入门还是不错的;第一部分1~7章介绍引擎基础略枯燥……;现时的 2dx 较之书中所述已经略有改动……
  •     粗读
  •     前面几章写的不错,后面不知是不是编写人员技术不够还是在赶时间。
  •     单节内容过于单薄,但不失为一本深入2dx的好书
  •     不知道为什么手贱买了这本书,,真是手贱,,这本书读起来真他咩的累,,很多知识点突如其来的就出现了,,也不解释,,许多名词突如其来的就放在那里了,,完全就是猜猜看,,,所以要翻找资料,好长好长好长时间,,太垃圾了,,连个源码都没有,,好在老夫基础比较深厚,英文比较好,,要不然非被丫坑死
  •     手把手的教,很实用。
  •     游戏开发者非常值得一读的一本书籍
  •     先看看再说了。
  •     本以为能从中了解一些cocos2d-x的设计原理,或者应用技巧,但是一则论述枯燥,二则内容贫乏,示例却随手带过,S
  •     书本的连贯性不是很好,缺乏逻辑。。。
  •     看了前面3章,讲解很清楚
  •     内容已经过时了,当作闲书看看了
  •     作为一个C++程序员业余时间扫了一眼《cocos2d-x手机游戏开发:跨iOS、Android和沃Phone平台》《Cocos2d-x权威指南》以及本书。其实怎么说呢,这些书每一本都有烂的地方,每一本都有好的地方。就我自己而言,一开始自学Cocos2d-x的时候发现各种工厂各种单例,心中颇多疑惑这是放屁亦须模式的节奏?然而扫了一眼本书才了解其实所使用一些模式是为了与Objective-C从代码表现形式上统一。真心话,这本书还是有用处的。至于一些人所说莫名其妙的贴一段代码。。这也是受限于篇幅没办法的事情。
  •     前面一些章节,还不错。后面的章节很多东西只是概述性的介绍。 书名比内容好。
  •     不错的书,看得出作者是在认真写书,难得。
  •     觉得很不错,特别是教你看源码分析cocos2d-x原理,不管是新手还是老手都有用。不足的是,讲得不够全面,例子不够吸引人。
  •     无奈已经过时了,3.0新玩法
  •     发货挺快的,看了前面几章,还不错,蛮全面的。但是例子不多,初学者可以参照其他书的例子。不过有点贵,感觉.......
  •     大致看了下,最近项目紧,没有仔细看。
  •     虽然代码注释不是特别多,需要思考才能想通,但是建议看这本书要有c++的基础,而且对指针有自己的理解,这样看起来不太费劲。很好的一本书,值得推荐
  •     手游开发
  •     书还行,就是版本过时以后很多东西都对不上了,看的费劲
  •     刚刚看到第十章该书以制作捕鱼达人游戏为主线,边介绍cocos2d-x的使用边讲解 捕鱼达人 的开发,步步为营,连贯性很强,看着不会绝对枯燥乏味这是同类型的书中绝对没有的。从精灵、动画等元素的创建运用详细讲解了框架的内存管理机制,从鱼儿游动的细节设计迭代式的解释了如何刻画一个生动的action,也解答了我之前自学遇到的问题。作为一个新手来说,我个人的感觉是此书不存在不适合新手的问题。只要读者有C++的经验自己肯专研绝对没问题。值得拥有。
  •     只适合刚接触游戏编程的新人来学习Cocos2d-x的一些基础知识,算是很基础实用,引擎涉及的相关知识基本够全了,外带一个商业实例。不过还是属于同类图书一样够全不够详细,且不涉及引擎底层一些重要原理,也免不了大量粘Textcpp里的源码。
  •     买了很久 书买回来没看
  •     因为要做项目的缘故,比较快的浏览了下
  •     2014年 很有帮助
  •     对引擎能有个大概的认识
  •     很不错的入门书籍,讲解很详细
  •     写的还可以,介绍引擎的使用,附带一个小例子。
  •     c++太丑不想学,用lua弄了个小游戏,关于生命的起源与结束算是自娱自乐。
  •     看完这本书,做了个微信飞机大战,不过现在不做游戏了
  •     国内的基本中文书里讲的稍微深入点的
  •     这本书的示例代码有点前言不搭后语 只能稍微看一看 不如直接去看testapp 很明了 这本书随便翻阅一下 感觉就差不多了
  •     只是放在书架上,暂时没有时间可以碰了
  •     莫名其妙的就贴出来一些代码,不说类继承自哪里,不说应该怎么创建一个新的层,就知道一小段代码一小段代码的放上放,而且还会莫名其妙多出来一堆的成员变量,也不说怎么定义的,也不说都是干什么的,对懂一些cocos2d-x的人来说这本书不错,但是这本书一点都不适合初学者,一点都不!要是想买来自学,趁早另外挑一本。我是买瞎了
  •     不错, 讲了很多底层原理和高级技巧, 远远不是像其它人说的只是本入门书籍。 高阶的技术(比如缓存, 对象池, 线程,网络)也许没有讲得太深, 但是已经够用,读者知道方向, 就可以去找相应的资料了。自己百度下, 实现一个完整的demo也不是什么难事。
  •     整体说来是本不错的书,读它是去年的事了,相比较很多其他类似的书来说,这本有更多的小技巧。但是需要注意的是版本问题,需要对照2.x与3.x的区别学习。
  •     算是cocos入门书中最好的了
  •     真的介绍挺清晰
  •     首先对cocos2d的介绍浅尝辄止唯一有点价值的源码不知道哪里去弄作者能靠谱点么
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024