SpriteKit didBeginContact调用但不是didEndContact
我有以下代码, 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
我四处搜寻,找不到任何理由为什么应该被称为,而不是其他。 我已经确定方法签名是正确的和一切。
当两个物体接触时,我会看到日志中的“开始接触”,但是一旦他们不再接触,“终止接触”就不会出现。
任何想法,我做错了什么?