【问题标题】:How to pass touches from UIView to CCLayer (ccTouchesBegin etc.)如何将触摸从 UIView 传递到 CCLayer(ccTouchesBegin 等)
【发布时间】:2013-09-30 19:12:39
【问题描述】:

在我的 cocos2d 和 box2d 游戏中,我的 CCScene 上有 UIView。我有这个问题,UIView 吞下了所有的触摸,CCLayer 的 ccTouchesBegin 等方法没有被调用。

有什么方法可以将触摸传递给我的 CCLayer?我用谷歌搜索了这个,但在这件事上我一无所获,只得到了关于从层到层阻止触摸的结果。

有人知道吗?非常感谢所有帮助,在此先感谢

【问题讨论】:

    标签: ios uiview cocos2d-iphone box2d touches


    【解决方案1】:

    在图层的初始化函数中,尝试添加以下代码:

    [[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO];

    如果这不起作用,这里有两个链接可能会对您有所帮助。第一个是 StackOverflow 问题,似乎是 somewhat similar to yours. 另一个是 Cocos2D 论坛问题,有人有 opposite problem as you,但是查看他们的代码和他们问题的答案可能会给你更多的尝试。

    祝你好运,伙计!

    【讨论】:

      【解决方案2】:

      感谢您的提示,我尝试了您的代码@doctorBroctor,但没有成功。但我最终通过委托使其工作。只是将 UIView 中的委托方法编码到我的层。

      【讨论】:

      • 我不再使用 Cocos2D,但是我写了一个委托协议并让该层成为 UIView 的委托,所以基本上当我接触 UIView 时,我调用了委托方法(并导致层是委托,它响应而不是 UIView)
      猜你喜欢
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多