好吧,所以我在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个精灵节点animalsCount
和chicken1
之间建立联系时,我需要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)
}
(我只会在savior
与chicken1
发生碰撞时增加分数,因为它不会发生反之亦然
事实上,每当救世主与chicken1发生碰撞时,我的标签从0开始,animalsCount
增加2。
我假设这是因为animalsCount
在救世主开始接触chicken1并且结束接触时上升。
如何更改此设置,以便animalsCount
仅在联系开始时上升?或者我怎么能让animalsCount
上升1而不是2?
我已经尝试将animalsCount
增加0.5,并收到错误消息。