当敌人靠近时玩家不会检测到碰撞

Player won't detect collision when enemies get close

我已经设法让子弹和敌人发生接触,但由于某些原因,主角不会与敌人发生接触。

    func didBegin(_ 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 & Bullet) != 0 && (secondBody.categoryBitMask & Enemy) != 0{

        bulletDidCollideWithEnemy(bulletNode: firstBody.node as! SKSpriteNode, Zombie: secondBody.node as! SKSpriteNode)

    }else{
        firstBody = contact.bodyB
        secondBody = contact.bodyA
    }
    if (firstBody.categoryBitMask & Player) != 0 && (secondBody.categoryBitMask & Enemy) != 0{

        playerCollideWithEnemy(playerNode: firstBody.node as! SKSpriteNode, Zombie: secondBody.node as! SKSpriteNode)

        }

}

对于遇到与我相同问题的任何人,这里是问题的解决方案。我只需要确保 "Enemy" 对其他对象可见。非常重要!希望这对某人有所帮助。

Enemy.physicsBody?.affectedByGravity = false
Enemy.physicsBody?.isDynamic = true