exc_breakpoint-使用Swift SpriteKit碰撞检测引起



碰撞当前有效,我可以玩一段时间,但是在销毁了大约50艘敌方船只之后,我得到了错误exc_breakpoint(code = 1,subcode = 0x1003f42cc)

我在这条代码

上将其获取
projectileDidCollideWithEnemy(firstBody.node as SKSpriteNode, enemy: secondBody.node as SKSpriteNode)

这是我认为正在影响的代码的位,并且断点会导致。

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.Enemy != 0) &&
        (secondBody.categoryBitMask & PhysicsCategory.Projectile != 0)) {
            projectileDidCollideWithEnemy(firstBody.node as SKSpriteNode, enemy: secondBody.node as SKSpriteNode)
    }

这是被称为

的功能
func projectileDidCollideWithEnemy(projectile:SKSpriteNode, enemy:SKSpriteNode) {
    projectile.removeFromParent()
    enemy.removeFromParent()
    score++
    scorelabel.text = String(score)
}

您可能需要尝试检查父母是否在删除弹丸和敌人的弹丸和敌人之前。

最新更新