4

這是我的小情況。我正在使用uipanGesture移動一個ccsprite。我可以將它全部移到沒有問題的位置,並且我可以使用uitapgesture拍攝屏幕上的一個點。UIPanGestureRecognizer和UITapGestureRecognizer同時

-(void)handleTap:(UITapGestureRecognizer *)recognizer{ 

CGPoint location = [recognizer locationInView:recognizer.view]; 
location = [[CCDirector sharedDirector]convertToGL:location]; 
location = [self convertToNodeSpace:location]; 

if (location.x > winSize.width * .6 && location.y <winSize.height/2) { 
    NSLog(@"fire"); 
} 

我添加了委託方法,所以當我平移時,我可以點擊fire按鈕:一切正常。

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
    return YES; 
} 

但是,當我不平移和只使用uitapgesture射擊,當我燒我無法平移...我認爲這正在發生的原因是因爲它的註冊最後自來水作爲 recognizer.state == UIGestureRecognizerStateBegan自我不是在搖擺。

任何人知道一種方法,我可以挖掘,而不是註冊水龍頭作爲if (recognizer.state == UIGestureRecognizerStateBegan

如果(location.x < winSize.width/2),但它沒有工作,我試過。

+0

我們可以看到你創建的手勢? –

+0

我在這個例子中創建了兩個地方,我在init中創建了它,但是我之前在應用程序委託中創建了它們。 – ifrapps

回答

1

您可能需要使用requireGestureRecognizerToFail設置手勢識別器鏈。這將意味着正在執行的手勢將被迫失敗,優先於第二個手勢。

所以我認爲你想要你的[requireGestureToFail:]。

+0

今天晚上我要試試這個讓你知道它是否有效的 – ifrapps

+0

試過它沒有工作 – ifrapps

+0

我做了一個教程,而後來http://www.scott-sherwood.com/?p=256和本教程我希望你的平底鍋和水龍頭的工作方式能夠讓捏手和旋轉手勢相互吻合,看看它是否有幫助。同時,我會嘗試創建一個展示你想要的行爲的小型項目,看看是否有一些內在的使用水龍頭和鍋在一起,造成奇怪。 –

0

我不知道,如果有人有興趣在這個職位,但我沒有用解決問題就像90% 以下

for(int i=0; i<[recognizer numberOfTouches]; i++){ 
    CGPoint pt = [recognizer locationOfTouch:i inView:recognizer.view]; 
    pt = [[CCDirector sharedDirector]convertToGL:pt]; 
    pt = [self convertToNodeSpace:pt]; 

    if (i==0) { 
    //stuff 
    } 
相關問題