在两个机构的第一次碰撞中增加了2分。在另一次碰撞后,uz只添加一个分数

时间:2015-05-11 07:08:05

标签: swift sprite-kit

在两个身体的第一次碰撞中增加了2分。在另一次碰撞后,uz只添加一个分数。怎么解决?谢谢

这是我的代码:

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 & PhysicsCategory.monster != 0) &&
        (secondBody.categoryBitMask & PhysicsCategory.naboj != 0)) 
    {
        if let firstNode = firstBody.node as? SKSpriteNode,
                let secondNode = secondBody.node as? SKSpriteNode  
        {
            projectileDidCollideWithMonster(firstNode, monster: secondNode)
        };
        score = score + 1
        scoreLabel.text = "\(score)"
    }
}

1 个答案:

答案 0 :(得分:1)

在第一次碰撞中加1之前检查score的值。我确定在您添加1时,该值已设置为1。所以它在第一次显示2,然后将它增加1。