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; 
}