所以,我正在寻找一个特定的精灵,它是另一个孩子的孩子,它是一个节点的孩子。结构是
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,以便它检查精灵相对于节点的位置,而不是相对于它自己?
答案 0 :(得分:1)
CGPoint local = [s convertTouchToNodeSpace:touch];
您希望转换为父级的节点空间,在本例中为s
。