在两个身体的第一次碰撞中增加了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)"
}
}
答案 0 :(得分:1)
在第一次碰撞中加1之前检查score
的值。我确定在您添加1时,该值已设置为1。所以它在第一次显示2,然后将它增加1。