没有调用SKPhysicsContactDelegate的方法

时间:2015-08-03 01:25:35

标签: swift sprite-kit skphysicsbody

如果两个物理实体的dynamic属性设置为false,则无法让它们从didBeginContact调用SKPhysicsContactDelegate方法。

简而言之,以下代码调用didBeginContact方法

player.physicsBody = SKPhysicsBody(rectangleOfSize: player.size)
player.physicsBody?.dynamic = true
player.physicsBody?.affectedByGravity = false
player.physicsBody?.categoryBitMask = Util.CollisionContactCategory.Player
player.physicsBody?.collisionBitMask = 0
player.physicsBody?.contactTestBitMask = Util.CollisionContactCategory.Score | Util.CollisionContactCategory.World | Util.CollisionContactCategory.Pipe

但此代码不是

player.physicsBody = SKPhysicsBody(rectangleOfSize: player.size)
player.physicsBody?.dynamic = false
player.physicsBody?.categoryBitMask = Util.CollisionContactCategory.Player
player.physicsBody?.collisionBitMask = 0
player.physicsBody?.contactTestBitMask = Util.CollisionContactCategory.Score | Util.CollisionContactCategory.World | Util.CollisionContactCategory.Pipe

即使我100%确定这两个机构联系,但它们不会产生消息。我在其他帖子上读过,如果两个物理实体不是动态的,则不会调用didBeginContact

有解决方法吗?我的意思是可以让它们成为非动态的并同时调用didBeginContact吗?

谢谢!

0 个答案:

没有答案