0

画面の特定の部分でタッチ開始 n タッチ終了を検出しようとしています。スプライトとしてスパイダーがあり、touchbegan と touchend で顔の向きを変更します。クモの前からだけ触りたい。

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //[self ccTouchesMoved:touches withEvent:event];
    UITouch *touch = [touches anyObject];
    startTouchPoint = [touch locationInView: [touch view]];

    //location = [[CCDirector sharedDirector] convertToGL: location];
    CCLOG(@"Location of Touch %@",NSStringFromCGPoint(startTouchPoint));
}
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    
    UITouch *touch = [touches anyObject];
    CGPoint endlocation = [touch locationInView: [touch view]];
    if(startTouchPoint.x != endlocation.x && startTouchPoint.y != endlocation.y) {
        CGPoint touchPoint = [touch locationInView: [touch view]];
        touchPoint = [[CCDirector sharedDirector] convertToGL:touchPoint];
        
        [self calcAngleAndRotateObjectStartingAtPoint:sprite_Spider.position endingAtPoint:touchPoint];
    }
}

ここに画像の説明を入力

これは私のクモで、赤い線の間だけ触りたいです。どうすれば達成できますか。

4

2 に答える 2

0

毎回クモの前に架空の矩形を作成し、このメソッドを使用してタッチを検出します

CGRectContainsPoint(<rect>,<point>)

touch が rect 内にある場合は何でもする

于 2013-01-28T08:00:59.343 に答える
0

あなたの場合、私は UITapGestureRecognizer に行き、デリゲートメソッドを実装します

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

これらの行の間のどこでも false を返す必要があります。他のすべての場所では、NO と Y を返します。

タップジェスチャのさまざまなフェーズを検出することもできます

于 2013-01-28T07:54:37.673 に答える