4

これが私の小さな状況です。uipanGesture で ccsprite を動かしています。問題なくあちこちに動かすことができ、uitapgesture を使用して撮影できる画面上のスポットがあります。

-(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");  
}

デリゲート メソッドを追加したので、パンしているときに発射ボタンをクリックできます。すべて正常に動作します。

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

しかし、私がパンしていないときは、uitapgesture を使用して発砲しているときは、発砲しているときはパンできません...私がパンし recognizer.state == UIGestureRecognizerStateBeganていないので、最後のタップを登録しているためだと思います。

誰でも私がタップできる方法を知っていますが、タップを登録しないでくださいif (recognizer.state == UIGestureRecognizerStateBegan

if を試し(location.x < winSize.width/2)ましたが、うまくいきませんでした。

4

2 に答える 2

1

requireGestureRecognizerToFail を使用してジェスチャ認識チェーンを設定する必要がある場合があります。これは、実行中のジェスチャが強制的に失敗し、2 番目のジェスチャが優先されることを意味します。

したがって、[ requireGestureToFail: ] が必要だと思います。

于 2012-06-11T00:29:16.630 に答える
0

i dont know if anybody is interested in this post but i did fix the problem like 90% using the following

  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
     }
于 2012-06-13T15:59:49.193 に答える