【问题标题】:cocos2d-x EventDispatcher is not a singleton any more?cocos2d-x EventDispatcher 不再是单例了?
【发布时间】:2014-04-23 09:26:23
【问题描述】:

我用的是cocos2d-x 3.0 RC1,我有以下问题。据我所知,cocos2d-x 有一个(集中的)事件调度器,它被实现为一个单例,这样我就可以从任何地方向任何地方发送事件。现在在最终版本中,它不是单例,我不能使用EventDispatcher::getInstance()。为什么集中的 EventDispatcher 被认为是错误的?在这种情况下,我如何将一个不是cocos2d::Node 的类的事件发送到另一个也不是cocos2d::Node 的类?

【问题讨论】:

  • @LearnCocos2D 我注意到你总是删除cocos2d 标签。这是某种使命吗? :)
  • 我删除了不适合的 cocos2d-iphone 标签。人们经常添加 [cocos2d](尽管标签描述声明不使用此标签),因为它是 [cocos2d-iphone] 的同义词,并且扩展为与 [cocos2d-x] 不同的引擎。 cocos2d 引擎之间只共享高级概念,但每个引擎都需要被视为单独的框架。所以我删除了这些冲突的标签(通常是 cocos2d-iphone),这样用户就不会碰巧用一个不适用于实际使用的引擎的解决方案来回答(即 cocos2d-x 的 ObjC 答案不会很有帮助)。
  • 但这应该会有所帮助,这些是端口并且具有相同的 API,不是吗?
  • 并非如此。方法/类名称可能是相关的,如果不相同的话,但除了一些基本问题之外,这几乎没有帮助。例如,上述问题与 cocos2d-iphone 没有真正的关系。在 v3 中没有 EventDispatcher,在 v2 和更早的版本中有 CCEventDispatcher,它的工作是将 OS X 事件转发给委托,而不是向其他类发送通知。另外 getInstance 不是 cocos2d-iphone API 的一部分,而是单例访问器通常使用 cocos2d-iphone 中的“sharedSomething”命名方案。 cocos2d-iphone 标签通常比有用更令人困惑

标签: c++ cocos2d-x event-dispatching


【解决方案1】:

得到答案:

cocos2d::Director::getInstance()->getEventDispatcher();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多