我有一个球(categoryBitMask=1,Contact=2),
墙(categoryBitMask=2,Contact=1)
还有一块地(有身体让球落下)
我为所有的事情都做了身体检查。
但我只想球和墙接触,而不是球和地接触。
在didBeginContact()中,当球落地时,它也被称为。
我怎么能?

最佳答案

在类别枚举中,设置3个类别:(land、walls、Ball)。
要设置球和地的零接触,我只设置墙的接触,而不是球和地的接触:

wallsNode.physicsBody?.categoryBitMask = categoryType.walls.rawValue

要使球不接触地面,请执行以下操作:
wallsNode.physicsBody?.contactTestBitMask = categoryType.ball.rawValue | categoryType.land.rawValue

而这个:
wallsNode.physicsBody?.collisionBitMask = categoryType.ball.rawValue | categoryType.land.rawValue

关于swift - didBeginContact协调所有物理体(Swift),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36519261/

10-13 05:13