【问题标题】:Same code for Cocos2Dx and Cocos2d-html5?Cocos2Dx 和 Cocos2d-html5 的代码相同吗?
【发布时间】:2013-10-13 08:50:27
【问题描述】:

Here我看到以下内容:

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

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

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

【问题讨论】:

    标签: cocos2d-x cocos2d-html5


    【解决方案1】:

    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。

    【讨论】:

    • 因此,如果我的目标是 web、iOS 和 Android,那么对我来说最好的选择是用 JS 编写游戏?
    • 没错。您的大部分 JS 代码都适用于 iOS 和 Android,但正如 Steffen 所说,您仍然需要在某些区域和功能上进行调整。
    【解决方案2】:

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

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

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

    【讨论】:

    • 我还是不明白。我有一个带有变量定义的 JS 代码,就像 JS 中一样(使用var ...)。下一步是什么?我的意思是你能举一个流程的小例子吗?
    • 能否将Cocos2Dx编写的C++游戏轻松移植到Cocos2D-html5中?我必须为此做些什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多