1.2 什么是Cocos2D-x
之前介绍了,Cocos2D-x是Cocos2D家族的一个重要分支。它的跨平台特性,使开发者编写一套代码就可以横跨Android和iOS两大平台,从而提高开发者的开发效率。Cocos2D-x不但具有跨平台的特性,还保留了Cocos2D的全部特性,这样之前的Cocos2D开发者可以很轻松地掌握Cocos2D-x。
1.2.1 Cocos2D-x的特点
随着智能设备平台的普及、用户数量的增多,智能平台的应用,尤其是游戏异常火爆。从《植物大战僵尸》到《愤怒的小鸟》,移动平台游戏的开发进入了新的阶段。但另一方面,平台的多样性也给开发者带来诸多不便。怎样将一款游戏发布到多个平台也是开发者们一直在探索的问题。特别是随着Android和iOS平台的兴起,开发者的游戏跨平台的需求更强了,随即Cocos2D-x分支诞生。其中“x”包含两个意思:一方面是C++的文件扩展CXX,“X”表示该项目是由C++编写的;另一方面意味着交叉,这个开源项目的目标是让用户创建跨平台的代码。Cocos2D-x是用C++重写的Cocos2D框架,因为Android和iOS均支持C++。
因为Cocos2D-x具有跨平台的特点,再加上Cocos2D全球社区的支持,Cocos2D框架简单易学、十分容易快速上手。因此Cocos2D-x迅速成为开发者的首选。经过一段时间的发展,众多开发者使用Cocos2D-x开发出了多款游戏,包括捕鱼达人、地铁总动员等。2012年年初,英国设计大师Michael Heald专门为Cocos2D-x设计了标志,如图1-8所示。
2012年年初,Cocos2D-x团队再次开发出两个分支,分别是支持Windows Phone的XNA版和支持HTML5的HTML5版(后者还得到了Google公司的赞助)。此外,在Zynga的帮助下,还研发出绑定JavaScript的Cocos2D-x 2.0版本。随着Cocos2D及其分支的发展,其会有更多跨平台特性,从而可以支持更多的平台,这会提高开发者的开发效率。相信Cocos2D-x将会更加受到广大开发者的欢迎,Cocos2D-x引擎也可以扩大其影响,成为全平台的二维游戏引擎。
1.2.2 Cocos2D-x的主要功能
Cocos2D-x继承了Cocos2D的全部特点,包括如下内容:
流程控制:非常容易地管理不同场景之间的流程控制。
精灵:快速而方便的精灵。
动作:可组合精灵的动作(如移动、旋转和缩放等),使精灵动起来。
特效:包括波浪、旋转和透镜等特性。
平面地图:支持平面地图和45度角地图。
转换:从一个场景移动到另外一个不同的场景。
菜单:创建内部菜单,包括主菜单和游戏菜单。
文本渲染:支持文本渲染标签。
文档:包括编程指南、API参考、视频教学和很多简单的测试例子。
BSD许可:BSD(Berkly Software Distribution,伯克利软件套件)开源协议给予使用者很大的自由。使用者可以自由使用、修改源代码,也可以将修改后的代码作为开源或者专有软件再次发布。
基于OpenGL:支持硬件加速。
2012年6月,Cocos2D-x发布了2.0版本(本书成书之时的最新版本是2.01版本,本书的示例也将使用2.01版本)。Cocos2D-x的2.0以上版本采用OpenGL ES的2.0分支,支持CocosBuilder编辑器,并且支持一些扩展类,包括CCControlExtension、 CCNotification、 CCListView等,还支持JavaScript脚本的编写,并且最新版本只支持iOS、Android和Win32三个平台。图1-9所示是国外网友为Cocos2D-x制作的广告,说明了Cocos2D-x对于iOS和Android两个主流平台的支持。
1.2.3 Cocos2D-x的应用
由于跨平台的特性,Cocos2D-x得到了诸多开发者的喜爱。截至2012年4月月底,使用Cocos2D-x开发的游戏有200多个,同时有很多用Cocos2D-iPhone开发的游戏的移植版本。图1-10所示为使用Cocos2D-x开发的部分游戏。
开发者也尝试着使用Cocos2D-x实现很多不同游戏中的效果。CocoaChina论坛举办的特效大赛中,很多特效都基于Cocos2D-x游戏引擎开发。从显示水波纹效果到塔防游戏例子,从切绳子特效到“愤怒小鸟”太空版效果模拟,Cocos2D-x的“江湖霸主”地位初步显现。图1-11所示为部分特效示意图。