在两个物体的第一次碰撞中增加了 2 分。在另一次碰撞之后,uz 只添加一个分数
At the first collision of two bodies added 2 score. After another collision uz add only one score
在两个物体第一次碰撞时加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 添加到 score
的值之前检查它的值。我确定在您向其中添加 1 时该值已设置为 1。所以它第一次显示 2,然后它递增 1。
在两个物体第一次碰撞时加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 添加到 score
的值之前检查它的值。我确定在您向其中添加 1 时该值已设置为 1。所以它第一次显示 2,然后它递增 1。