2014-04-06 95 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