从2.0到3.0时代
我**次接触Cocos2d-x的时候,它刚好发布了2.0版本,开始从1.x时代跨越到2.x时代。当时我还很庆幸,因为2.x相比1.x做出了很大的改动,而我,无须体验这种改动所带来的“怨念”。
一年前,我费尽心思所写的《Cocos2d-x游戏开发之旅》出版了,当时还是Cocos2d-x 2.0时代。有读者喜欢它的风格,也有读者讨厌它的唠叨,不管如何,它似乎帮助了不少读者进入了Cocos2d-x的门。
然而,一年以来,Cocos2d-x 3.0版本渐渐浮出水面,我们要迎来3.0时代了,我有幸再一次见证这种跨越时代的时刻。3.0终将替代2.0,为此,才有了这本《Cocos2d-x 3.x游戏开发之旅》。
这不是全新的内容
本书主要目的是把2.0的内容升级为3.0版本,并不是重新写一本书,大部分内容结构是一样的,从目录中就可以看出来。如果说,这是一本全新的、内容完全不一样的书,那我可能就变成了一个专门写书的骗子了。在编写2.0版本的书时,我已经把我几年所积累的知识都花光了。现在仅仅是过了一年时间,我这一年时间的积累,还不足以写成一本全新的书。
所以,我特意在前言部分把这个情况说清楚,避免和读者之间造成不必要的误会。
当然,即使仅仅是内容的升级,我也花费了很多心血,一句句代码的检查、修改、优化,一行行文字的调整、修改、新增。并且加入了一些3.0特有的新内容,新增了网络游戏、广告接入、游戏发布等方面的内容。
我不想再“生”了
一年前,编写完2.0版本的书时,我累趴了,写书比想象中累多了。那时我就告诉自己,“我这辈子再也不写书了!”,就像一位妈妈刚生完孩子一样,完全没有继续生下一个的勇气了。
然而,和所有的妈妈一样,时间长了,就忘记了痛苦,只记住了孩子带来的欢乐。我也不知道是什么原因让我决定写这本书,也许是太多读者和我抱怨说之前的书版本太旧了。于是,这本Cocos2d-x 3.x的书就这样诞生了。而我现在,依旧很想说一句,我这辈子再也不写书了!呵呵,也许这是亲尽全力完成一件事情之后,一种兴奋和满意的咆哮。
那么,希望本书能继续让各位初学者快乐地开启游戏开发之旅。
本书主要内容
本书共18章,如果读者没有Cocos2d-x的使用经验,建议从第1章开始阅读。对于有Cocos2d-x基础的读者,我为大家列出了各个章节的主要内容,供读者参考。
第1章:简单介绍本书写作理念、Cocos2d-x 3.0环境搭建和**的一些学习资源。
第2~3章:介绍Cocos2d-x3.0的*基本知识、基本结构。
第4~6章:介绍Cocostudio UI编辑器的使用、动作以及屏幕触摸事件的使用,通过一个简单的游戏实例将前面章节的内容串联起来。
第7~10章:对Cocos2d-x3.0更高阶的内容进行介绍,包括渲染效率的提高、动画、TexturePacker图片打包、Tiled地图游戏实例、定时器、消息派发、函数回调、内存管理、数据保存、Csv文件读取、JSON文件读/写。
第11~12章:介绍Lua和C++通信的知识、有限状态机的基础知识和应用。
第13章:分享我自己开发的基于Cocos2d-x 3.0的自定义UI模块,详细介绍自定义UI模块的设计思路和实现过程。
第14~16章:详细讲解本书*后一个游戏实例《卡牌塔防》,该游戏使用了本书介绍的大部分知识。作为本书的*后一个实例,用了三章的篇幅详细地介绍游戏的思路、框架搭建、功能实现的过程。
第17章:介绍网游游戏开发的基本流程,编写能和服务端进行命令交互的客户端。
第18章:分享我曾经遇到的错误和解决方案,介绍游戏发布、广告接入、**等方面的知识。
与2.0版本一书的不同之处
也许有些读者已经买过2.0版本的Cocos2d-x游戏开发之旅,这里列出本书与2.0版本一书的不同之处,方便读者参考:
1.所有代码均升级为3.0版本。
2.删除部分已过时的内容,对原有内容进行升级优化。
3.增加Value、Vector、Map、3.0触摸机制、lambda函数、Auto-Batching等3.0新特性的内容讲解。
4.增加JSON、Cocostudio UI编辑器、网络游戏等内容讲解。
5.增加游戏发布流程、未来趋势、**处理的内容。
致谢
我想,这次我*应该感谢的,是那些认可我的读者,那些能看懂书中幽默风格的读者。是你们让我知道,我不是一个“精神病人”。
*后,我想感谢我的家人,家人给我的不仅仅是支持,而是一个完整的开心的家庭。并且,我不得不再一次感谢的,就是本书的旁白丁小若,感谢她愿意授予我使用她名字的权限,感谢她给予我幽默的灵感。
谨以此书献给我可爱的家人和朋友们。
由于水平有限,书中难免有错误之处,希望读者朋友多指正。也欢迎大家到我的博客就书中的问题与我互动。
钟迪龙
2014.08.05