所以,我正在寻找一个特定的精灵,它是另一个子节点,它是节点的子节点。结构是
CCNode
CCSprite | tag = 1 | node local coordinate = 0, 0
CCSprite | tag = 2 | node local coordinate = 26.5, 133.5
我想检测触摸何时在第二个 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 作为相对于自身的坐标,而不是根据其位置进行修改。有什么方法可以让boundingBox检查精灵相对于节点的位置,而不是相对于自身的位置?