1

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

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

4

1 回答 1

0

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

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

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

于 2013-06-05T01:31:27.887 回答