2014-04-06 135 views
1

我希望能夠檢測在cocos2d V3如下:檢測第二觸摸,同時保持在cocos2d V3 iOS的第一觸摸

的觸摸發起並舉辦,再進行第二次觸摸發生在其他地方的屏幕。想想用一根手指握住,然後用一根手指敲擊。

我試過使用- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event,但這只是第一次發生第二次觸摸而不是隨後發生。

需要說明的是,如果我在屏幕上按住觸摸鍵,然後點擊其他位置,則會調用上述方法。但如果我繼續保持第一次觸摸,然後再次點擊,則不會調用上述方法。

另外,touchBegan:僅在發生第一次觸摸(即,初始保持觸摸)時才被調用,並且touchEnded:僅在所有觸摸被移除(包括初始保持觸摸)時被調用。

我想知道:

1)如何認識在cocos2d V3上面的姿勢? 2)如果1)是不可能的,是否有辦法用我自己的手勢識別器來做到這一點,以及我將如何將自己的手勢識別器實現到Cocos2d v3中?

+0

我已經實現在cocos2d-x(基於FSM)全手勢識別每個觸摸計數,但我沒有移動它CC2D V3呢。如果您有興趣,可以在http://nonlinearideas.com/tools-you-build-part-ii-tap-drag-and-pinch/找到它。此外,您需要調用類似[__glView setMultipleTouchEnabled:YES]的方式打開多點觸控;當應用程序初始化時。 **我會張貼這個答案,但它不是你所問的,但我認爲這會有幫助。** – FuzzyBunnySlippers

回答

1

默認情況下結束Cocos2d V3默認只響應單點觸摸。

解決辦法:

self.multipleTouchEnabled = TRUE; 

現在,這意味着每一個新的觸摸會叫:

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event 

而每一個手指從屏幕上擡起時,它會調用:

-(void) touchEnded:(UITouch *)touch withEvent:(UIEvent *)event 

即使還有其他接觸仍在繼續。

如果使用 void HelloWorld::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent)
0

然後你使用pTouches->count();

+0

這是否也在Cocos2d V3中? –

+0

我不確定它在v3上的工作,但我在cocos2d 2.2中使用它。但是,您可以在cocos2d v3中的觸摸處理方面有更好的想法...只需按照此鏈接.. https://www.makegameswith.us/gamernews/366/touch-handling-in-cocos2d-30 – bbm20891