新書推薦:
《
纷纭万端 : 近代中国的思想与社会
》
售價:HK$
109.8
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:HK$
168.0
《
朋党之争与北宋政治·大学问
》
售價:HK$
99.7
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:HK$
88.5
《
以爱为名的支配
》
售價:HK$
62.7
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:HK$
53.8
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:HK$
66.1
《
新时代硬道理 广东寻路高质量发展
》
售價:HK$
77.3
編輯推薦:
国内第一本全面深入讲解Cocos2d-x进阶内容的图书
Cocos2d-x创始人王哲作序推荐,《捕鱼达人》开发人员力作
《捕鱼达人》代码大揭秘,传授大家如何做一个《捕鱼达人》的原型
Cocos2d-x内部原理独家深度探秘
內容簡介:
本书以《捕鱼达人》游戏为案例,全面系统地讲解了Cocos2d-x
的功能与特性,以及进行游戏开发的基本思路,包括游戏框架的搭建、基本游戏元素的使用、动作、音乐与音效、物理引擎、高级开发技巧、游戏优化策略以及网络编程等内容。此外,本书精心挑选了引擎的调度系统、动作系统、输入事件处理与底层绘图原理等内容,逐层剖析,给读者清晰地呈现出了引擎的架构和内部的实现机理。
无论是初次接触游戏开发的新手,还是有一定经验的老手,都可以借由本书轻松有效地提高自己的水平。
關於作者:
马朔 广州火烈鸟网络科技有限公司CEO,带领团队参与了《捕鱼达人》系列游戏的技术开发以及Cocos2d-x for
Windows Phone
7的技术移植。在学生时代就曾受苹果公司邀请作为中国高校学生代表赴美参加WWDC(苹果全球开发者大会)。
尹航 广州火烈鸟网络科技有限公司CTO,从事移动游戏的研发工作。曾经参与Cocos2d-x for Windows Phone
7引擎的开发,负责《捕鱼达人》系列游戏Windows
Phone版本的移植工作,并参与了多个移动游戏项目的开发,拥有丰富的游戏开发经验。
目錄 :
第一部分 引擎基础
第1章 Hello Cocos2d-x2
1.1 引擎简介2
1.2 搭建开发环境3
1.3 Hello World5
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 CCGLProgram168
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 CCGrid3D177
11.7 再议效率178
11.8 小结179
第12章 物理引擎180
12.1 新的超级武器180
12.2 Box2D引擎简介181
12.3 接入Box2D181
12.4 更新状态184
12.5 调试绘图186
12.6 碰撞检测187
12.7 弹射189
12.8 精确碰撞190
12.9 小结191
第三部分 游戏开发进阶
第13章 数据持久化194
13.1 CCUserDefault194
13.2 格式化存储194
13.3 本地文件存储196
13.4 XML与JSON196
13.5 加密与解密200
13.6 SQLite201
13.7 小结205
第14章 网络206
14.1 网络传输架构206
14.2 CURL206
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 CCTextureCache216
15.3.2 CCSpriteFrameCache217
15.3.3 CCAnimationCache217
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 pthread225
16.3 线程安全226
16.4 线程间任务安排227
16.5 并发编程辅助228
16.6 小结233
第四部分 多平台
第17章 多平台下的Cocos2d236
17.1 Windows 8236
17.2 Windows Phone平台237
17.3 Cocos2d-HTML5237
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-iPhone设计。它继承了Cocos2d系列引擎一贯的特点:使用简单,运行高效、灵活,且功能强大。
与Cocos2d-iPhone不同的是,Cocos2d-x还拥有强大的跨平台能力,只需要编写一次代码,就可以无缝地部署在包括iOS、Android、Windows、OS
X在内的许多主流游戏平台之上。在移动终端日趋多样化的今天,把游戏部署到多种平台是游戏开发的大趋势,Cocos2d-x的跨平台能力无疑为开发者节省了大量的时间和精力。
本书的主要目的是向读者介绍Cocos2d-x这个十分优秀的平面游戏引擎。阅读完本书前三部分之后,读者会对Cocos2d-x的各个方面都有比较深入的了解,并且也会对游戏开发的过程以及技巧有了一定的认识,可以得心应手地使用Cocos2d-x进行游戏开发了。
同时,本书第四部分介绍了一些最新的游戏开发技术,包括多平台开发、可视化开发、游戏移植,以及Cocos2d-HTML5。它们作为Cocos2d-x的补充,为游戏开发者带来了极大的便利。阅读完这一部分之后,读者将对游戏开发的趋势有一个新的认识。
示例代码
本书采用了时下最热门的游戏《捕鱼达人》作为游戏示例。《捕鱼达人》由北京触控科技有限公司开发,采用Cocos2d-x作为游戏引擎。在本书中,我们以开发自己的《捕鱼达人》作为主线,一边讲解游戏开发技术,一边不断地完善捕鱼游戏,并最终引导读者实现属于自己的《捕鱼达人》。
为了使读者可以完整地体验一次游戏开发流程,本书还在第五部分安排了实战演练章节,带领读者体验真正的游戏开发:从创建空项目开始,然后进行首轮开发与多次迭代,最终得到可以运行在移动设备上的游戏成品。
本书示例游戏中包含的所有资源文件,都源自触控科技有限公司授权使用的《捕鱼达人》原版资源文件。读者可以从图灵社区(www.ituring.com.cn)本书主页免费获取实战章节中的代码,以及所使用的资源文件。
读者背景
阅读本书需要具备一定的计算机知识以及编程功底。Cocos2d-x采用C++编写,熟练掌握C++语言对于学习本书是很有必要的。此外,本书第四部分涉及了游戏多平台的话题,在阅读这一部分时,根据读者不同的需求,也许还需要了解JavaScript、Objective-C以及C#的知识。
本书是针对Cocos2d-x游戏开发者撰写的,无论是初学者、有一定经验的开发者,还是对引擎内部工作原理有兴趣的读者,都十分适合阅读本书。
q 对于初学者:本书前两部分从游戏开发的基础知识开始,详细介绍了游戏开发的方法以及所使用的工具,初学者可以轻松入门。
q
对于从事过游戏开发,包括使用过其他Cocos2d引擎的读者:本书利用《捕鱼达人》作为示例,完整展示了游戏从开发到部署的各个环节。书中不仅介绍了Cocos2d-x中常用的功能与技巧,还探讨了许多配合Cocos2d-x所使用的高级技术,涵盖游戏效率优化、网络通信和游戏移植等时下热门的话题。
q
对于好奇引擎工作原理的读者:本书第一部分与第二部分穿插剖析了Cocos2d-x的核心代码,为读者理解引擎的工作原理提供了清晰的思路。配合本书来研究Cocos2d-x的代码是一个很好的选择。
本书分工与致谢
本书的主要作者为尹航,整体设计及撰写思路由马朔负责,第1章至第7章、第8章、第10章、第17章至第20章,以及附录A由尹航编写,第9章、第11章至第16章由丁伟杰编写,第21章由张三华编写。
在此,首先要感谢北京触控科技有限公司以及Cocos2d-x开发团队对本书提供的多方面的帮助,他们共同为本书提供了最权威的技术支持。感谢中山大学在团队发展过程中所给予的大力支持。同样感谢马朔带领下的火烈鸟网络所有成员对本书的贡献,他们是叶思聪、彭颖辉、潘阳和郑浩等,没有他们的努力,就不会有这本书。本书的插图由尹航的女友赵婉滢提供,感谢她提供的精美插图以及在本书编写过程中的支持与耐心。最后,感谢所有为本书提出评论、建议以及支持的朋友:周顺帆、小小、Hana以及其他的朋友们,他们的建议使得本书更加完善。
由于笔者水平有限,书中内容难免会有错误或疏漏,欢迎读者批评指正。
……