Swift:当检测到联系时,得分增加2而不是1?

时间:2015-06-14 19:39:18

标签: swift sprite-kit

好吧,所以我在sprite kit游戏中保持得分,得分存储在名为animalsCount的变量中。在这里,我将变量和它输出的标签节点设置为:

    //Score count in stats bar
    //Animal score count

    animalsCount = 0

    animalsCountLabel.text = "\(animalsCount)"
    animalsCountLabel.fontSize = 45
    animalsCountLabel.fontColor = SKColor.blackColor()
    animalsCountLabel.position = CGPoint (x: 630, y: 40)

    addChild(animalsCountLabel)

每次在2个精灵节点animalsCountchicken1之间建立联系时,我需要savior增加1。在这里,animalsCount增加了碰撞检测:

 func didBeginContact(contact: SKPhysicsContact) {

        //Chicken1

        if (contact.bodyA.categoryBitMask == ColliderType.Savior.rawValue && contact.bodyB.categoryBitMask == ColliderType.Chicken1.rawValue )  {

            println("chicken1 contact made")
            chicken1.hidden = true
            chicken1.setScale(0)

            animalsCount += 1
            animalsCountLabel.text = "\(animalsCount)"


        } else if (contact.bodyA.categoryBitMask == ColliderType.Chicken1.rawValue && contact.bodyB.categoryBitMask == ColliderType.Savior.rawValue)  {

            println("chicken1 contact made")
            chicken1.hidden = true
            chicken1.setScale(0)

        }

(我只会在saviorchicken1发生碰撞时增加分数,因为它不会发生反之亦然 事实上,每当救世主与chicken1发生碰撞时,我的标签从0开始,animalsCount增加2。

我假设这是因为animalsCount在救世主开始接触chicken1并且结束接触时上升。

如何更改此设置,以便animalsCount仅在联系开始时上升?或者我怎么能让animalsCount上升1而不是2? 我已经尝试将animalsCount增加0.5,并收到错误消息。

0 个答案:

没有答案