Cocos2d-x学习笔记:完全掌握JS API与游戏项目开发 (未来书库,触控未来官方教材)
上QQ阅读APP看书,第一时间看更新

4.1 Cocos2d家谱

在介绍Cocos2d-x引擎与JS绑定之前,有必要先介绍一下Cocos2d的家谱,如图4-1所示。

图4-1 Cocos2d的家谱

Cocos2d最早是由阿根廷的Ricardo和他的朋友使用Python开发的,后移植到iPhone平台,使用的语言是Objective-C。随着它在iPhone平台取得了成功,Cocos2d引擎变得更加多元化,其中各个引擎介绍如下:


□ShinyCocos:使用Ruby对Cocos2d-iphone进行封装,使用Ruby api开发。

□CocosNet:是在MonoTouch平台上使用的Cocos2d引擎,采用.NET实现。

□Cocos2d-android:是为Android平台使用的Cocos2d引擎,采用Java实现。

□Cocos2d-android-1:是为Android平台使用的Cocos2d引擎,采用Java实现,由国内人员开发的。

□Cocos2d-javascript:是采用Javascript脚本语言实现的Cocos2d引擎。

□Cocos2d-x:是采用C++实现的Cocos2d引擎,它是由国内触控科技开发的分支项目。

□Cocos2d-JS:是采用JavaScript API的Cocos2d引擎,一方面它可以绑定在Cocos2d-x上开发基于本地技术的游戏;另一方面它依托浏览器运行,开发基于Web的网页游戏。它也是由国内触控科技开发的分支项目。在Cocos2d-x 3.7之后,Cocos2d-x和Cocos2d-JS合并了。


此外,历史上Cocos2d还出现过很多其他分支,随着技术的发展逐渐消亡了,其中最有生命力的当属Cocos2d-x引擎了。

4.1.1 Cocos2d-x引擎

Cocos2d-x设计目标如图4-2所示。横向能够支持各种操作系统,桌面系统包括Windows、Linux和Mac OS X,移动平台包括iOS、Android、Windows Phone、Bada、BlackBerry和MeeGo等。纵向方面,Cocos2d-x向下能够支持OpenGL ES1.1、OpenGL ES1.5、OpenGL ES2.0,以及DirectX11等技术,向上支持JavaScript和Lua脚本绑定。

图4-2 Cocos2d-x设计目标

4.1.2 Cocos2d-x绑定JavaScript

Cocos2d-x设计得非常巧妙,可以绑定JavaScript和Lua脚本语言,使不熟悉C++的人员也能使用Cocos2d-x引擎开发游戏,它们不使用C++语言的API,而是使用JavaScript和Lua语言的API。Cocos2d-x绑定JavaScript脚本原理如图4-3所示。

图4-3 Cocos2d-x绑定JavaScript脚本

如图4-3所示,通过Cocos2d-JS Framework暴露给开发人员JavaScript API,这些JavaScript程序与HTML5技术结合,发布基于浏览器的网页游戏;另一方面,这些JavaScript程序通过JS binding(JS绑定)技术与Cocos2d-x引擎结合,发布基于操作系统的本地游戏。