什么是Cocos2d-JS?

时间:2014-10-28 15:02:23

标签: cocos2d-x cocos2d-js cocos2d-html5

  

Cocos2d-JS是Cocos2d-x引擎的JavaScript版本,包括   Cocos2d-html5和Cocos2d-x JavaScript绑定。它装备你的游戏   具有跨浏览器和跨平台的能力,伴随着完整   Cocos2d-x功能和简化的JavaScript友好API。

我知道你写JS并且它可以在任何地方工作,但它是如何完成的?我想理解这个图:http://www.cocos2d-x.org/wiki/Getting_Started_Cocos2d-js据我所知,cocos2d-html5与cocos2d-x相同,但它在JS中并基于WebGL。如果这是真的那么什么是Cocos2d-JSB?它是否将JS脚本编译为本机代码?或者它是一个JS扩展解释器,它比本机解释器更能理解并且可以解释cocos2d特定命令吗?

2 个答案:

答案 0 :(得分:1)

  

据我所知,cocos2d-html5与cocos2d-x相同,但它是   在JS中并基于WebGL。如果这是真的那么什么是Cocos2d-JSB?

我相信 cocos2d-x JSB 附加的 JSB 只是意味着: cocos2d-x JavaScript Bindings

在两种编程语言之间进行翻译/调解的模块通常称为"绑定"。 JSB只是cocos2d-x的一个小方面,允许用户通过cocos2d-x C ++渲染引擎运行用cocos2d-js Javascript编写的应用程序。

请注意,cocos2d-html5与cocos2d-x并不完全相同。它提供与cocos2d-x类似的功能,但仅在Web浏览器中运行。显然,cocos2d-html5没有触摸或加速度计输入的功能,以及在保存和加载文件时的其他限制。

  

它是否将JS脚本编译为本机代码?或者它是一个JS扩展解释器,它比本机解释器更能理解并且可以解释cocos2d特定命令吗?

JSB只是在Javascript API和C ++ cocos2d-x版本的类,方法,标识符之间进行映射。

我不知道它是否将Javascript编译为本机代码。

这个要点:

cocos2d-js在Javascript中提供了一个编程接口(API),无论您是通过cocos2d-html5在浏览器中运行还是通过cocos2d-x在其他(移动)平台上运行它,都会产生相同的结果。

答案 1 :(得分:0)

  

Cocos2d-x使用Firefox JS虚拟机(VM)SpiderMonkey   执行JS代码。

     

JS VM已扩展为支持所有cocos2d,Chipmunk和CocosBuilder Reader API。因此,当您在JS中创建CCSprite时,   实际上是在创建一个C ++ CCSprite。当您在中创建操作时   JS,当你创建一个时,你实际上正在创建一个C ++动作   JS中的粒子系统,实际上是在创建一个C ++粒子   系统...等等。这种方法比HTML5快大约10倍~20倍   即使他们使用像directCanvas这样的加速器基本上都是游戏   cocos2d,Chipmunk或CocosBuilder Reader API将会执行   几乎以原生速度。但是你应该注意以下几点   场景:垃圾时性能可能会变慢   收集器运行。解决方法:不要创建许多JS对象。重用为   尽可能多的具有复杂的主循环可能会减慢速度   性能。解决方法:配置您的JS代码,如果不能   进一步优化它,用C ++编写昂贵的部分并创建JS   绑定这些函数。

这是来自wiki.所以JS解释器扩展为了解cocos2d api命令,例如create Action或create Sprite。