随着智能手机的普及,相关的应用犹如雨后春笋般涌现。其中,游戏扮演着一个重要的角色,和端游、页游形成三足鼎立之势。例如,卡牌类游戏我叫 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日于深圳