3

在这里,我看到以下内容:

.... Cocos2d-x 团队正在研究一种叫做“Cocos2d 的Javascript 绑定”的东西。这意味着您在 Cocos2d-html5 引擎上运行的完全相同的代码可以在 Cocos2d-X 和 Cocos2d-iPhone 上完美运行,无需或只需少量修改。所有这一切都转化为“手机上几乎原生的快速”。

我无法理解的是,用一种语言编写的代码如何翻译成另一种语言?他们的意思是有一个工具可以将 Cocos2d-html5 游戏的 JavaScript 代码作为输入并将其转换为 C++ Cocos2dx 代码或向后转换?

EIDT:我可以轻松地将使用 Cocos2Dx 编写的 C++ 游戏移植到 Cocos2D-html5 中吗?我必须为此做些什么?

4

2 回答 2

3

这意味着 cocos2d-x 和 cocos2d-html 都使用相同的 Javascript API。因此,在理想情况下,相同的 JS 代码在 html5 上运行,而另一次使用 -x 引擎。

但是仍然可能存在差异,因为在幕后,每个引擎的实现可能略有不同(或不那么微妙)。此外,并非所有功能(即触摸输入、加速度计、着色器)都可以在每个引擎上使用。因此,短语“几乎没有修改”。

但是,如果您的主要目标不是 Web,那么使用 JS API 就没有什么意义,因为它添加了一个额外的层,使得调试代码问题变得更加困难,并且与直接(在 C++ 中)为 -x 编写相比,整体性能会受到影响。

于 2013-10-13T10:22:54.807 回答
3

Cocos2d-x 和 Cocos2d-html5 共享相同的 Javascript API,并为开发人员提供了使用 Javascript 编写代码的优势,并且可以与这两个框架一起使用。

至于你的第二个问题,Cocos2d-html5 原生运行 Javascript,而 Cocos2d-x 使用 SpiderMonkey(Brendan Eich 用 C/C++ 编写的 Javascript 引擎)来运行你的 Javascript 代码。

虽然,有一件重要的事情需要考虑。使用本地语言和 API 开发游戏花费的时间更少,易于调试,并且易于扩展和维护。因此,在我看来,如果游戏仅适用于 iOS,则应使用 cocos2d-iphone,如果游戏在多平台上,则应使用 cocos2d-x,仅当游戏的主要目标是 web 时才应使用 cocos2d-html5。

于 2013-10-13T18:39:00.293 回答