2011-04-28 56 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次觸摸,並且可以「吞嚥」觸摸(避免事件的傳播)。

首先,調度員將接收到的觸摸發送到目標觸摸。這些觸摸可以被目標觸摸處理程序吞下。如果仍有剩餘的觸摸,則剩餘的觸摸將發送到標準觸摸處理程序。