Xcode 如何使两个物理体在SpriteKit中不碰撞

Xcode 如何使两个物理体在SpriteKit中不碰撞,xcode,swift,sprite-kit,skphysicsbody,Xcode,Swift,Sprite Kit,Skphysicsbody,我有一个玩家: categoryBitMask = playerCategory contactTestBitMask = enemyBulletCatgory 此角色使用以下命令射击子弹: categoryBitMask = bulletCatgory contactTestBitMask = enemyCategory 但是当我射出子弹时,子弹有点越过我的玩家,我的玩家有点跳跃,因为他们相互作用,尽管他们没有这样做 如何使SKPhysicsBody彼此忽略?将它们的碰撞位掩码设置为零。默

我有一个玩家:

categoryBitMask = playerCategory
contactTestBitMask = enemyBulletCatgory
此角色使用以下命令射击子弹:

categoryBitMask = bulletCatgory
contactTestBitMask = enemyCategory
但是当我射出子弹时,子弹有点越过我的玩家,我的玩家有点跳跃,因为他们相互作用,尽管他们没有这样做


如何使SKPhysicsBody彼此忽略?

将它们的碰撞位掩码设置为零。默认情况下,它们会与任何东西发生碰撞。我可以这样做,但我的球员会从地板上摔下来。如果我只将项目符号的collisionBitMask设置为零,则即使玩家的collisionBitMask不是项目符号的位掩码,它仍会交互。您可以将每个节点的collisionBitMask设置为与任何其他节点碰撞或不碰撞。例如,可以设置player.collisionBitMask=floorCategory | wallCategory | ballCategory。但是,如果另一个节点移动,则需要相应地设置另一个节点的碰撞位,以确保它们正确碰撞。例如,如果球是一个移动的对象,则设置ball.collisionBitMask=playerCategory。对于我得到的球员:physicsBody.collisionBitMask=floorCategory | BlokCategory,对于我得到的子弹:p.physicsBody.contactTestBitMask=enemyCategory,因此他们不应该交互。顺便问一下,它们都在移动:)我能听听这个事件吗?如果它们发生碰撞,我可以取消任何互动吗?尽管这会产生一些开销。请尝试让playerCategory:UInt32=0x1