不使用联系人位掩码获取有关冲突的通知?

时间:2018-03-31 05:03:32

标签: ios swift sprite-kit collision-detection skphysicsbody

我在SpriteKit中使用物理实体。我有一个成功与墙精灵碰撞的玩家精灵。我知道如何使用接触测试位掩码,但是Apple says

  

为获得最佳性能,只需在联系人掩码中设置您感兴趣的交互位。

当然,我可以设置接收有关联系互动的通知。但Apple的声明暗示这可能会带来性能成本。如果可能的话,我想避免这种情况。

所以我想知道是否可以避免使用隐形面具,并且会收到有关我场景中已经发生的碰撞的通知。当两个物理实体之间发生碰撞时,SpriteKit有没有办法通知你?

1 个答案:

答案 0 :(得分:0)

根据@ Knight0fDragon的评论,我得出结论,这个问题的正确答案是“没有实用的方法来获取碰撞通知”。

我发布此答案,以防其他人考虑调查此主题。如果有人想出一个方法来获得有关碰撞的通知 - 即使是一种糟糕的方式 - 我会有兴趣知道是否只是出于好奇的缘故;请在此处将其作为替代答案发布。

简而言之,您应该使用碰撞检测来使节点相互冲突。如果要通知节点之间的联系,则应使用联系人位掩码。这确实带来了一定的性能成本,但是如果你想在物理机构相互联系时得到通知,那就是如何做到这一点。