gpt4 book ai didi

javascript - cocos2d-iphone jsb & cocos2d-html5 兼容性 : ctor, init, associateWithNative

转载 作者:行者123 更新时间:2023-11-27 22:32:54 25 4
gpt4 key购买 nike

我正在用 cocos2d (iphone jsb + cocos2d-html5) 编写一个跨平台游戏,我想知道如何让它真正跨平台。适用于 -html5 的代码不一定适用于 -iphone jsb,反之亦然。

目前我遇到了以下(相关)问题:

  1. ctorinit 有什么区别?
  2. 什么时候应该重载ctor,什么时候应该重载init
  3. 什么时候应该从 ctor 和/或 init 调用 _super()
  4. 如果重载 do ctor,我应该什么时候从 ctor 调用 .init()
  5. 我应该如何实例化对象?使用 var inst = new Obj(); inst.init();?或者只是 var inst = new Obj();?我知道有 .create() 方法是有意义的,但我要问的是我自己编写 create 方法的情况。
  6. 什么时候应该使用 associateWithNative

我有一些适用于 html5 版本的代码,但后来我收到一条错误消息,说该对象已经在 iPhone jsb 版本上初始化,所以很明显我弄错了。我试过查看 MoonWarriors 代码,但它似乎从不使用 associateWithNative,我认为这是必需的,它有时会重载 ctor,有时不会,有时会调用 init 来自 ctor,有时不是,等等...

最佳答案

广告 1-5。我发现覆盖 ctor - 即使现在看起来更方便,特别是对于来自 JS 世界的人来说,在其他平台上编译 cocos2d-js 代码时可能会导致问题 - 如果你偶然发现 ERROR in *: Invalid代理对象 错误,这可能是因为覆盖了 ctor 方法(在少数情况下对我来说)。此外,有时 native 类的构造函数方法会期望您为从 native 类继承的类覆盖/处理您的参数,这也可能导致一些冲突。

除此之外,Kex 描述了所有差异 - 我会说查看提供的示例和 cocos2d 源代码是最安全的,“Cocos2d 方式”是结合使用 init 方法和静态工厂 create

广告 6.不再需要使用 associateWithNative 方法(您可以在此处阅读更多信息:cocos2d-js-devel)

关于javascript - cocos2d-iphone jsb & cocos2d-html5 兼容性 : ctor, init, associateWithNative,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com