1.1 什么是Cocos2D
大家认识并且熟悉Cocos2D,应该是从App Store上几款非常火爆的游戏开始的,但是实际上Cocos2D引擎最早并非是为iOS(iPhone Operating System,苹果移动设备操作系统)设计的。最早它是一款用Python语言开发的游戏引擎,后来使用Objective-C被移植为iOS平台的Cocos2D- iPhone版本。不仅如此,Cocos2D被移植成各个版本,形成了庞大的Cocos2D家族。
1.1.1 Cocos2D的特点
Cocos2D是一个开源框架,用于构建二维游戏、演示程序和其他图形界面交互应用等。 它于2008年2月诞生于阿根廷Cordoba市附近的Los Cocos,最早是由Ricardo和他的朋友们用Python开发的。最早引擎的名字源自开发地Los Cocos。后来引擎的0.1版本改名为Cocos2D。2008年6月引擎宣布与iOS平台对接,并在当月发布了以Objective-C为主语言的Cocos2D- iPhone版本。它与最早的Python版在设计思路上是一致的。之后使用Cocos2D- iPhone开发的首款游戏StickWars在App Store美国区付费榜冲到第一,Cocos2D进入了可商用阶段。
由于App Store的发展,很多开发者开始使用Cocos2D- iPhone开发游戏并将游戏提交到App Store上。截至2008年年底App Store就已经有数十款游戏使用Cocos2D开发。
随着智能手机平台的发展,在其他平台上的游戏开发需求也开始多了起来。此时,Cocos2D的各种平台、各种编程语言移植版也开始涌现,ShinyCocos、Cocos2D-Android、CocosNet,Cocos2D-JavaScript相继诞生。 Cocos2D的发展及其分支如图1-1所示。
同时,英国的设计大师Michael Heald为Cocos2D设计了新的标志,如图1-2所示(Cocos2D最早的标志是一个奔跑的椰子)。
以下是Cocos2D的一些版本介绍。
ShinyCocos:Cocos2D-iPhone绑定Ruby的实现。
CocosNet:Cocos2D的.NET实现,运行在Mono上。
Cocos2D-Android:Cocos2D的Java实现,并且能够在Android操作系统上运行。
Cocos2D-Android1:此分支是由一位国内资深开发者建立发展的。这是另一个关于Android操作系统的Cocos2D引擎实现。
Cocos2D-x:Cocos2D的C++语言移植版,目前2.0版本以上支持Win32(Windows 32,视窗32位操作系统)、Android、iOS。
Cocos2D-XNA:由Cocos2D-x团队开发的分支,支持WP(Windows Phone,视窗手机操作系统)。
Cocos2D-HTML5:由Cocos2D-x团队开发的分支,支持HTML5 Canvas技术,获得Google等公司的资助。
Cocos2D-JavaScript :Cocos2D的JavaScript语言实现。由于HTML5技术的发展,相信Cocos2D-JavaScript会有更广阔的前景。
1.1.2 Cocos2D的主要功能
作为一款游戏引擎,在游戏开发方面Cocos2D引擎具有很多的实用功能。
首先Cocos2D降低了技术的复杂性。它虽然基于OpenGL(Open Graphics Library,开放图形库)和OpenGL ES(OpenGL for Embedded Systems,嵌入式系统开放图形库),但是使用Cocos2D系列的引擎无须掌握OpenGL的相关知识。大多数Cocos2D游戏中简单的图形对象由Sprite精灵对象生成。Sprite就是一个贴图。你可以调用Cocos2D中的方法来实现图片的缩放,如图1-3所示。
你也可以调用Cocos2D实现旋转,如图1-4所示。
你无须关心这些功能在底层是如何实现的。同时由于它是开源的,你可以获得引擎的全部源代码,也可以根据你的需要用OpenGL知识来修改或生成新的游戏对象。也就是说,对于初学者来说,Cocos2D可以避免你花费时间去研究OpenGL的相关内容,同时它也不排斥资深开发者对于引擎的修改,进而使开发者随心所欲地来使用它。
Cocos2D自带的物理引擎可以提高玩家游戏的乐趣。目前非常火爆的《愤怒的小鸟》等多款游戏都在游戏中加入了物理引擎。Cocos2D系列引擎集成了目前比较流行的两款物理引擎(Chipmunk和Box2D),从而大大方便了游戏开发者,并且提高了开发的效率。Cocos2D中使用物理引擎的例子如图1-5和图1-6所示。
Cocos2D的开发者社区十分活跃。开发者在开发过程中如果有问题,会得到很快的解决。而且,相应的参考资料也很多,开发者们非常愿意将他们的经验和知识分享出来。因为它是开源的,所以你的修改也相对方便了许多,你在游戏开发中会有很大的灵活性,不必束缚在引擎的功能限制上。对于富有经验的游戏开发者来说,这点十分重要。
同时,由于Cocos2D开源性和强大的社区支持,相应的工具开发也非常活跃,例如最早的粒子编辑器到现在的动画编辑器。目前集成编辑器CocosBuilder已经初见雏形并且支持Cocos2D和Cocos2D-x。关于相关的工具,本书也会在之后的章节详细介绍。
1.1.3 Cocos2D的应用
Cocos2D作为一个游戏引擎,已经从最早的版本移植到很多种语言和框架上。其中最流行的几个包括:支持iOS操作系统的Cocos2D-iPhone版本,支持Android操作系统的Cocos2D-Android和Cocos2D-Android1,以及可以横跨两大操作系统(iOS和Android)的Cocos2D-x版本,当然也不能忽略有着先天跨平台优势的Cocos2D-HTML5版本。相信在不久的将来,Cocos2D会得到更广泛的应用。
当然,Cocos2D最为辉煌的舞台就是App Store。使用Cocos2D-iPhone和Cocos2D-x两个版本开发的游戏在App Store上有着举足轻重的位置,曾经创下过很多辉煌的战绩。如图1-7所示,使用Cocos2D引擎开发的游戏在付费应用榜(Top Paid)前9里面占2席,在免费应用榜(Top Free)前12里面占7席,并且占据两个榜的第一位。
随着Cocos2D-HTML5的发布,相信将来Cocos2D引擎会有更大、更好的舞台得以发挥,尤其是在网页游戏方面。而借助HTML5这个跨平台利器,Cocos2D在跨平台的支持上将会迈出更大的一步。