我正在写一款自上而下的汽车游戏。当我需要在我的场景中检查我的汽车和非物理对象之间的关联时,我做了一个简单的事情:
CGRectIntersectsRect(car.frame,object.frame);
如果我检查"第一级"上的对象,我的工作正常。如果对象有一个孩子我怎么能只检查与孩子的交集?我试着像:
CGRect rectChild=[object childNodeWithName:@"childnode"].frame;
CGRectIntersectsRect(car.frame,rectChild);
它无法正常工作,因为CGRect
返回的childNodeWithName
相对于父级而不是相对于场景......有一种方法可以将此矩形转换为场景坐标?
答案 0 :(得分:0)
自己找:
CGPoint positionInScene = [_worldNode convertPoint:[[object childNodeWithName:@"childnode"] position] fromNode:object];
有了这个我可以用场景坐标来回溯子节点位置然后我可以重新创建一个新的cgrect来检查交叉点