【问题标题】:SKPhysicsBody does not have a member named "your variable"SKPhysicsBody 没有名为“您的变量”的成员
【发布时间】:2014-10-18 16:28:43
【问题描述】:

我的代码中出现错误。我以为我打电话给contact.bodyA,但到目前为止还没有阅读。我是否遗漏了什么或使用 if 语句都错了?我是一个新程序员,如果这非常简单或含糊不清,我很抱歉。如果您需要更多信息,请与我们联系!提前致谢!

func didBeginContact(contact: SKPhysicsBody!){

    // Body1 and 2 depend on the categoryBitMask << 0 and << 1
    var firstBody:SKPhysicsBody
    var secondBody:SKPhysicsBody

    if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask){ ERROR- (SKPhysicsBody does not have a member named'bodyA')
        firstBody = contact.bodyA
        secondBody = contact.bodyB
    }else{
        firstBody = contact.bodyB
        secondBody = contact.bodyA
    }

    if ((firstBody.contactTestBitMask & photonTorpedoCategory) != 0 && (secondBody.contactTestBitMask & alienCategory) != 0){
        torpedoDidCollideWithAlien(firstBody.node as SKSpriteNode, alien: secondBody.node as SKSpriteNode)
    }
}

【问题讨论】:

    标签: xcode swift sprite-kit skphysicsbody


    【解决方案1】:

    这是因为联系人不应该是SKPhysicsBody;它应该是一个SKPhysicsContact 对象。 SKPhysicsBody 没有名为bodyA(或bodyB)的成员,因为它们是SKPhysicsContact 的成员。

    didBeginContact 函数的正确声明应如下所示:

    func didBeginContact(contact: SKPhysicsContact) {
        //Your code in here
    }
    

    【讨论】:

    • 是的,就是这样!非常感谢,我永远不会知道!
    【解决方案2】:

    试试看:

    func didBeginContact(contact: SKPhysicsBodyContact!){
    
        // Body1 and 2 depend on the categoryBitMask << 0 and << 1
        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.contactTestBitMask & photonTorpedoCategory) != 0 && (secondBody.contactTestBitMask & alienCategory) != 0){
            torpedoDidCollideWithAlien(firstBody.node as SKSpriteNode, alien: secondBody.node as SKSpriteNode)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 2014-11-09
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多