我有以下代码,调用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
我已经四处搜寻,找不到任何理由应该被召唤而不是另一个。我确保方法签名是正确的和一切。
当两个身体接触时,我看到"开始接触"在日志中,但一旦他们不再联系,"结束联系"永远不会出现。
关于我做错的任何想法?