在 SpriteKit 中更改 contactTestBitMask 后检测接触

Detect Contact After Changing contactTestBitMask in SpriteKit

我目前正在使用 SpriteKit 在 Swift 中创建 2D 游戏,但我遇到了碰撞检测问题。

假设我在游戏中有 SKSpriteNode Foo。然后假设 SKSpriteNode Bar 在 Foo 之上生成,但没有 contactTestBitMask 来触发接触。然后在片刻之后(比如说 1 秒)Bar 更改其 contactTestBitMask 以检测与 Foo 的接触。

目前,Foo 必须实际移动一点或从 Bar 下面移出并 return 返回到它以检测与它的接触。我需要 Bar 在更改其 contactTestBitMask 时立即触发与 Foo 的联系。

也许有不同的方法可以在不更改 contactTestBitMask 的情况下做到这一点?

谢谢!

如果您创建的物理实体对象与另一个物理实体对象相交,则不会发生碰撞。这与SK仅通过移动来记录碰撞的方式有关。

您可以选择在创建对象时使用 intersectsNode: 来查看它是否与另一个对象相交并相应地处理任何后续代码。