Swift - 如何为特定节点添加场景边界?

Swift - How to add scene boundaries for specific nodes?

我正在尝试使用 SpriteKit 开发一个 IOS 游戏,我想在场景中添加一个物理实体,这样玩家就无法穿过屏幕的边缘。同时,我希望一些节点(例如 - 从天而降的炸弹)能够穿过屏幕的边缘。

我知道我可以使用以下行向场景添加物理体:

self.physicsBody = SKPhysicsBody (edgeLoopFrom: self.frame)

我的问题是,如何让 "bomb" 物体穿过这样的物体,同时让 "player" 物体必须遵守这些边界。

答案是相对于categoryBitMaskcollisionBitMask所涉及的物理体

例如对于场景:

if let scenePB = scene.physicsBody {
    scenePB.categoryBitMask = 1
    scenePB.collisionBitMask = 2 // collides with player
}

对于玩家:

if let playerPB = player.physicsBody {
    playerPB.categoryBitMask = 2
    playerPB.collisionBitMask = 1+4 // collides with scene and bombs
}

对于任何炸弹:

if let bombPB = bomb.physicsBody {
    bombPB.categoryBitMask = 4
    bombPB.collisionBitMask = 2 // collides with player
}