我不知道为什么这个错误会出现在代码中:
func torpedoDidCollideWithAlien(torpedo:SKSpriteNode, alien:SKSpriteNode){
print("HIT")
torpedo.removeFromParent()
alien.removeFromParent()
var aliensDestroyed = 0
aliensDestroyed += 1
if (aliensDestroyed > 10){ //Transition to GameOver or Success
let transition:SKTransition = SKTransition.flipHorizontalWithDuration(0.5)
let gameOverScene:SKScene = GameOverScene(size: self.size, won: true)
self.view?.presentScene(gameOverScene, transition: transition)
}错误在下面这一行:
let transition:SKTransition = SKTransition.flipHorizontalWithDuration(0.5) //'Will never be executed'发布于 2016-04-20 10:16:53
声明一个名为aliensDestroyed的新变量,其值为0。然后将该值递增为1。
然后检查这个值是否大于10,这不可能是真的。它将始终是1。
因此,if语句的内容永远不会执行。
您可能需要的是一个名为aliensDestroyed的实例变量,而不是在torpedoDidCollideWithAlien函数中创建一个新的局部变量。
发布于 2016-04-20 10:55:09
这不是一个错误,而是一个警告。编译器已经对您的代码进行了分析,并告诉您,按照您编写代码的方式,if语句永远不会为真,因此括号内的语句将永远不会被执行。
rmaddy在他的回答中解释了原因。
https://stackoverflow.com/questions/36732615
复制相似问题