sprite与节点配对之间的碰撞检测

时间:2013-06-04 23:30:00

标签: cocos2d-iphone sprite collision-detection nodes bounding-box

我一直在寻找关于cocos2d-iPhone碰撞检测的许多不同主题,使用精灵的边界框,我有一个精灵围绕CCNode旋转一个偏移位置(精灵是一个节点的子节点所以这个位置是相对于CGPoint中的父节点,而另一个精灵根本没有连接到一个节点。当我尝试在两个精灵的边界框上进行碰撞检测时,它不起作用,因为一个精灵被添加到节点。 所以,我的解决方案是使用noded sprites位置复制精灵来制作另一个未连接的精灵,但是获取其他精灵的坐标。我想出了如何使用convertToWorldSpace方法获取子精灵的位置,但是位置是相对于节点的,所以我得到了非常奇怪的坐标。

所以我的问题是,有没有办法让碰撞在两个不同的精灵的边界框上工作,即使一个是另一个节点的孩子?如果没有一种简单的方法可以做到这一点,那么有没有办法在场景中获得精灵的绝对位置,其中的点与它的父亲不相关? 如果需要,我可以稍后添加示例代码。我现在不能,因为我正在使用手机。

1 个答案:

答案 0 :(得分:0)

尝试从每个父节点使用convertToWorldSpace。

在连接到节点的精灵上,使用:[nodeParent convertToWorldSpace:connectedNode]

在没有连接到节点的精灵上,使用:[self convertToWorldSpace:unconnectedNode]