边境碰撞检测

时间:2016-01-06 01:12:36

标签: ios sprite-kit collision-detection

我正在使用Sprite Kit进行游戏,我有这样的碰撞检测设置:

    ball.physicsBody?.categoryBitMask = ballCategory
    borderBody.physicsBody?.categoryBitMask = borderCategory

处理程序-didBeginContact()

func didBeginContact(contact: SKPhysicsContact) {

    var firstBody = SKPhysicsBody()
    var secondBody = SKPhysicsBody()

    if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask {
        firstBody = contact.bodyA
        secondBody = contact.bodyB
    }else {
        firstBody = contact.bodyB
        secondBody = contact.bodyA
    }

    if firstBody.categoryBitMask == ballCategory && secondBody.categoryBitMask == borderCategory {
        print("You Lose!")
    }

}

我也有这一行来设置联系人委托:

self.physicsWorld.contactDelegate = self

但是当我运行游戏时,没有检测到碰撞并且没有任何反应。有什么问题?

1 个答案:

答案 0 :(得分:1)

请参阅documentation here。如果要接收联系/交叉通知,则需要设置contactTestBitMask。与默认值为collisionBitMask的{​​{1}}不同,0xFFFFFFFF的默认值为contactTestBitMask