"Никогда не будет казнен"
Я не знаю, почему эта ошибка появляется в коде:
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'
2 ответа
Вы объявляете новую переменную с именем aliensDestroyed
со значением 0
, Затем вы увеличиваете значение до 1
,
Затем вы проверяете, является ли значение больше 10. Это не может быть правдой. Это всегда будет 1
,
Поэтому содержание if
заявление никогда не будет выполнено.
Что вы, вероятно, хотите, это переменная экземпляра с именем aliensDestroyed
вместо создания новой локальной переменной внутри вашего torpedoDidCollideWithAlien
функция.
Это не ошибка, это предупреждение. Компилятор выполнил анализ вашего кода и говорит вам, что то, как вы его написали, ваше утверждение if никогда не будет истинным, поэтому оператор внутри фигурных скобок никогда не будет выполнен.
Рмадди объяснил почему в своем ответе.