0

我正在使用UIPinchRecognizer和一个开放的捏来检测某人在Box2D世界中是否“分开”一个精灵。UIPinchGestureRecognizer - 抑制'close pinch'检测

问题是,当你向对方拖拽两个物品时,它会将此检测为紧密捏合并破坏我所有的连接点以及box2d物体的移动。

我试图将我的问题分成两个问题 - 您现在正在阅读的问题:是否可以抑制紧密捏合,如果这是不可能的:how to detect an open pinch myself

我需要抑制紧密夹捏的检测或写我自己的开放夹点检测。

我试图从缩放手势方法在一个开放的捏这样的返回:

if (pinch.velocity < 0) { 
    //close pinch 
    return; 
} 

,但它不工作,因为它仍然打破了触摸接头/ Box2D的对象。

你能帮我解决这个问题,通过抑制密切捏的检测?

+0

这种“拖向每两个项目其他“行为,你的捏识别器干扰 - 是否也通过手势识别器实现?如果是这样,您应该考虑在使用'requireGestureRecognizerToFail:'或者委托方法'gestureRecognizer:shouldRecognizeSimouslyouslyWithGestureRecognizer:'设置识别器之间的显式依赖关系。 – rickster 2012-04-17 06:01:27

+0

使用box2d鼠标关节可以实现将两个对象拖向另一个对象,而不是手势识别器 - 但它会被uipinchgesturerecognizer解释为捏。我正在使用的唯一手势识别器是捏。 – glenstorey 2012-04-17 06:06:32

+0

为什么您尝试的解决方案没有工作?当您紧密捏合时,pinch.velocity是否不小于零? – 2012-04-17 22:12:42

回答

0

我需要检查这个设备上,但我认为这已经固定它:

//Multitouch/pinch? 
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:)]; 
pinchRecognizer.cancelsTouchesInView = NO; //This fixes it because it stops the mouse joints getting broken. 

[[[CCDirector sharedDirector] openGLView] addGestureRecognizer:pinchRecognizer]; 
[UIPinchGestureRecognizer release]; 

这个在pinchGesture方法:

if(pinch.velocity <0){ 
    return; 
}