0

だから、ノードの子である別の子である特定のスプライトに触れようとしています。構造は

CCNode
    CCSprite | tag = 1 | node local coordinate = 0, 0
        CCSprite | tag = 2 | node local coordinate = 26.5, 133.5

タッチが 2 番目の CCSprite にあることを検出したいと思います。したがって、例のようにタグ付けし、ノードに触れるとメソッドを実行します

-(BOOL) touchIsInBoundingBox:(UITouch *) touch withEvent:(UIEvent *) event
{   //node local coordinates
    CCSprite * s = (CCSprite *)[self getChildByTag:1];
    CCSprite * t = (CCSprite *)[s getChildByTag:2];
    CGPoint local = [self convertTouchToNodeSpace:touch];
    return CGRectContainsPoint(t.boundingBox, local);
}

さて、これはうまくいくはずですが、t はその境界ボックスを、その位置によって変更されるのではなく、それ自体に対する座標として返すことがわかりました。それ自体ではなく、ノードに対するスプライトの位置をチェックするように、boundingBox を取得する方法はありますか?

4

1 に答える 1

1
CGPoint local = [s convertTouchToNodeSpace:touch];

親のノードスペース、この場合はs.

于 2013-05-27T23:31:56.477 に答える