Cocos2d-JS是Cocos2d-x引擎的JavaScript版本,包括cocos2d-html 5和Cocos2d-x JavaScript绑定。它为您的游戏配备了跨浏览器和跨平台功能,并附带完整的Cocos2d-x特性和简化的JavaScript友好API。
我知道你写了JS,它在任何地方都能工作,但是它是如何完成的呢?我想要理解这个图表:Cocos2d-js和我理解的cocos2d-HTML 5和cocos2d-x是一样的,但是它是在JS中并且基于WebGL的。如果这是真的,那么Cocos2d-JSB是什么?它是否将JS脚本编译成本机代码?或者是JS扩展解释器,它比本地解释器更能理解并且能够解释cocos2d特定的命令?
发布于 2014-10-28 20:10:26
Cocos2d-x使用Firefox虚拟机(VM) SpiderMonkey来执行JS代码。 JS被扩展到支持所有cocos2d、Chipmunk和CocosBuilder Reader。因此,当您在JS中创建一个CCSprite时,实际上是在创建一个C++ CCSprite。当您在JS中创建一个操作时,您实际上是在创建一个C++操作,当您在JS中创建一个粒子系统时,您实际上是在创建一个C++粒子系统…。诸若此类。这种方法比HTML5游戏快10倍~20倍,即使它们使用directCanvas这样的加速器时--基本上所有的cocos2d、花栗鼠或CocosBuilder Reader都将以本机速度执行。但是,您应该注意以下情况:在运行垃圾收集器时,性能可能会减慢。解决办法:不要创建许多JS对象。重用尽可能多的复杂主循环可能会降低性能。解决办法:分析您的JS代码,如果不能进一步优化它,请用C++编写昂贵的部分,并为这些函数创建JS绑定。
这是来自维基。的,因此JS解释器被扩展到理解cocos2d api命令,如create或create。
发布于 2014-10-28 17:31:13
据我所知,cocos2d-html 5和cocos2d-x是一样的,但它是在JS中基于WebGL的。如果这是真的,那么Cocos2d-JSB是什么?
我相信附加在cocos2d-x JSB上的JSB只是指: cocos2d-x JavaScript绑定。
在两种编程语言之间进行翻译/中介的模块通常称为“绑定”。JSB只是cocos2d-x的一个小方面,它允许用户通过cocos2d-x C++呈现引擎运行用cocos2d-jsJavascript编写的应用程序。
注意,cocos2d-html 5与cocos2d-x并不完全相同。它提供了与cocos2d-x类似的功能,但只在web浏览器中运行。很明显,cocos2d-HTML 5没有用于触摸或加速度计输入的功能,例如,在保存和加载文件时也没有其他限制。
它是否将JS脚本编译成本机代码?或者是JS扩展解释器,它比本地解释器更能理解并且能够解释cocos2d特定的命令?
JSB只需在Javascript和C++ cocos2d-x版本之间映射类、方法、标识符等等。
我不知道它是否将Javascript编译成本机代码。
的要点:
cocos2d-js在Javascript中提供了一个编程接口(API),无论您是通过cocos2d-html 5在浏览器中运行它,还是通过cocos2d-x在其他(移动)平台上运行它,都会产生相同的结果。
https://stackoverflow.com/questions/26611613
复制相似问题