在Cocos2d v3 iOS中保持第一次触摸时检测第二次触摸

时间:2014-04-06 09:35:16

标签: ios objective-c cocos2d-iphone

我希望能够在Cocos2d v3中检测到以下内容:

启动并保持触摸,然后在屏幕上的其他位置发生第二次触摸。想想用一根手指握住,然后用一根手指敲击。

我尝试使用- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event,但这仅在第二次触摸时发生,而不是随后发生。

要清楚,如果我在屏幕上触摸然后点击其他地方,则会调用上述方法。但是,如果我继续按住第一次触摸然后再次点击,则不会调用上述方法。

此外,touchBegan:仅在第一次触摸发生时调用(即初始保持触摸),touchEnded:仅在删除所有触摸时调用,包括初始保持触摸。

我想知道:

1)如何在Cocos2d v3中识别上述手势?

2)如果1)不可能,有没有办法用我自己的手势识别器来做,我将如何在Cocos2d v3中实现我自己的手势识别器?

2 个答案:

答案 0 :(得分:1)

默认情况下,Cocos2d V3仅响应单次触摸。

解决方案:

self.multipleTouchEnabled = TRUE;

这意味着现在每次触摸都会调用:

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

每次手指从屏幕上抬起时,它都会调用:

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

即使还有其他接触也在继续。

答案 1 :(得分:0)

如果您使用void HelloWorld::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent),则可以使用pTouches->count();

获取每次触摸计数