2011-04-28 53 views
3

我想让我的CCLayer的子类响应多点触控。在init方法我称之为cocos2d:ccTouchesBegin没有调用,但ccTouchBegan没有触发

self.isTouchEnabled=YES; 

在一个名为registerWithTouchDispatcher方法,我称之为

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO]; 

在我的应用程序的委托,我叫

[glView setMultipleTouchEnabled:YES]; 

的ccTouchBegan:withEvent:方法方法被调用,但从来没有ccTouchesBegan:withEvent。我对cocos2d很新,所以它可能很简单,我只是不知道它是什么。

+0

愚蠢的问题,但...有多个接触? – Sup3rpanda 2011-04-29 04:49:33

回答

6

在您的班级中添加[[CCTouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0];以接收非目标触摸。

从cocos2d的文档(链接:http://www.cocos2d-iphone.org/api-ref/0.99.0/interface_c_c_touch_dispatcher.html

CCTouchDispatcher。处理所有触摸事件的单例。调度程序将事件分派给已注册的TouchHandlers。有2种不同类型的触摸处理程序:

标准触摸处理程序 针对性的触摸处理程序 标准触觉处理程序的工作方式类似于CocoaTouch触摸处理程序:一组触摸被传递给委托。另一方面,目标触摸处理程序当时只能接触1次触摸,并且可以“吞咽”触摸(避免事件的传播)。

首先,调度员将接收到的触摸发送到目标触摸。这些触摸可以被目标触摸处理程序吞下。如果仍有剩余的触摸,则剩余的触摸将发送到标准触摸处理程序。