【发布时间】:2020-04-02 13:52:58
【问题描述】:
是否有可能在空间发生碰撞之前取消它?
示例:A 和 B 即将发生碰撞,但 A 具有一个属性,因此对于特定的 SKPhysicsContact,不应发生与 B 的碰撞。空间中的所有其他碰撞都应不受影响。
在阅读 Apple 的课程文档时,它说:
物理接触委托方法在物理过程中被调用 模拟步骤。期间物理世界不可修改 以及物理实体的任何变化的行为 模拟未定义。如果您需要进行此类更改,请设置一个标志 在 didBegin(:) 或 didEnd(:) 中并做出相应的更改 SKSceneDelegate 中 update(_:for:) 方法中的标志。
这是否意味着我可以检测到 didBegin() 中的状态,并在实际发生碰撞之前更改 update() 中的碰撞掩码?
有一个类似主题的旧线程:SpriteKit SKPhysicsBody collision in one direction like a door you can only go through but not back
【问题讨论】:
-
接触和碰撞是两个不同的东西,请更好地解释你想要做什么。
-
更新了问题。
标签: swift sprite-kit skphysicscontact