SpriteKit doBeginContact调用但不是didEndContact

时间:2015-03-29 16:38:01

标签: ios swift sprite-kit

我有以下代码,调用didBeginContact(contact:)方法但不调用didEndContact(contact:)

// FIXME: This is a workaround until class vars are supported
let sharedContactHandler = ContactHandler()

class ContactHandler: NSObject, SKPhysicsContactDelegate {
    class var sharedHandler: ContactHandler {
        get {
            return sharedContactHandler
        }
    }

    func didBeginContact(contact: SKPhysicsContact) {
        let bodyA = contact.bodyA
        let bodyB = contact.bodyB

        NSLog("Began contact")
        ...
    }

    func didEndContact(contact: SKPhysicsContact) {
        let bodyA = contact.bodyA
        let bodyB = contact.bodyB

        NSLog("Ended contact")
        ...
    }
    ...
}

在我的场景中,

physicsWorld.contactDelegate = ContactHandler.sharedHandler

我已经四处搜寻,找不到任何理由应该被召唤而不是另一个。我确保方法签名是正确的和一切。

当两个身体接触时,我看到"开始接触"在日志中,但一旦他们不再联系,"结束联系"永远不会出现。

关于我做错的任何想法?

0 个答案:

没有答案