0

これは、特定のスプライトに触れた場合に検出するための私のコードです

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];

for(CCSprite *sprite in shapeArray)
{

    if(CGRectContainsPoint(sprite.boundingBox, location))
    {
        //There is a sprite that is touched
         mSpriteOnHand = sprite;
        currentPoint = mSpriteOnHand.position;

        break;
    } 
    //This part didn't work
    else
    {
      NSLog(@"Touch outside);
    }
}

}

タッチが外側にあるかどうかを検出したいのですが(スプライトや空のスペースではありません)、その方法がわかりません。

4

1 に答える 1

0

あなたのタッチが機能している場合は、BOOL を追加してから for ループの外側に if ステートメントを追加すると、このように機能します。

BOOL itemFound = NO;
for(CCSprite *sprite in shapeArray)
{

    if(CGRectContainsPoint(sprite.boundingBox, location))
    {
    //There is a sprite that is touched
        mSpriteOnHand = sprite;
        currentPoint = mSpriteOnHand.position;
        NSLog(@"item TOUCHED");
        itemFound = YES;
        break;
    } 
}

if (itemFound == NO)
{
     NSLog(@"Touch outside");
}
于 2013-06-15T12:58:32.523 に答える