Swift 两个具有相同类别的精灵与第三个精灵碰撞
这是我正在使用的代码:Swift 两个具有相同类别的精灵与第三个精灵碰撞,swift,sprite-kit,collision-detection,Swift,Sprite Kit,Collision Detection,这是我正在使用的代码: func didBeginContact(contact: SKPhysicsContact) { var firstBody : SKPhysicsBody? var secondBody : SKPhysicsBody? var thirdBody : SKPhysicsBody? var GoodKind : SKNode? var BadKind : SKNode? var Bullet
func didBeginContact(contact: SKPhysicsContact) {
var firstBody : SKPhysicsBody?
var secondBody : SKPhysicsBody?
var thirdBody : SKPhysicsBody?
var GoodKind : SKNode?
var BadKind : SKNode?
var Bullet : SKNode?
if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask) {
firstBody = contact.bodyA
secondBody = contact.bodyB
GoodKind = contact.bodyB.node
BadKind = contact.bodyB.node
Bullet = contact.bodyA.node
}
else {
firstBody = contact.bodyB
secondBody = contact.bodyA
GoodKind = contact.bodyA.node
BadKind = contact.bodyA.node
Bullet = contact.bodyB.node
}
if (firstBody!.categoryBitMask == PhysicsCategory.Tooth && secondBody!.categoryBitMask == PhysicsCategory.Food) {
GoodKind?.removeFromParent()
Counter++
println("\(Counter)")
}
else if (firstBody!.categoryBitMask == PhysicsCategory.Tooth && secondBody!.categoryBitMask == PhysicsCategory.WrongFood) {
BadKind?.removeFromParent()
Bullet?.removeFromParent()
}
}
如果子弹与劣质子弹相撞,则劣质子弹将与完好的子弹一起移除;如果子弹与实物发生碰撞,那么实物将被移除,计数器工作正常,但如果两颗或更多的子弹几乎同时与实物发生碰撞,计数器将增加2倍或更多倍。这是我不想发生的事情,但我不知道如何让它以我想要的方式工作。我将非常感谢您的帮助。您可以这样尝试:这不是我所需要的。多亏了这篇文章,我才得以解决