【问题标题】:Collision detection between sprites paired with nodes与节点配对的精灵之间的碰撞检测
【发布时间】:2013-05-31 12:23:32
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多