Как мне закончить игру, когда условие выполнено? - PullRequest
4 голосов
/ 05 апреля 2020

Я делаю игру на линкоре на Xcode 11 с использованием раскадровок, и я почти все сделал, кроме экрана Game Over, и перестал регистрировать догадки, когда счетчик достигнет 0. Это также мой первый раз, когда я делаю игру на мой собственный. Вот один из IBActions, который я сделал для кнопок:

 @IBAction func square1Button(_ sender: Any) {
        if randomNum == 1 {
            square1.image = UIImage(named: "ShipPatrolHull")
        } else {
            guesses -= 1
            Turns.text = String(guesses)
            if guesses == 0 {

            }
        }
    }

Оператор if в операторе else пуст, потому что я не знаю, что добавить туда, чтобы угадать переменные угадать и сделать Экран Game Over, чтобы показать. Я также добавил раскадровку GameOver, которая связана с основной раскадровкой.

1 Ответ

2 голосов
/ 06 апреля 2020

Вы можете отобразить Game Over UIAlertController, а затем сбросить игру, когда выберете «Play Again». Однако вы упоминаете, что у вас уже есть другая раскадровка для отдельного экрана Game Over. Все, что вам нужно сделать, это представить контроллер Game Over view. Обязательно установите идентификатор раскадровки для контроллера представления, который вы пытаетесь представить, чтобы иметь к нему доступ в коде. См. Руководство ниже:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = self.storyboard.instantiateViewController(withIdentifier: "GameOverView")

Отсюда вы можете легко представить его.

self.present(controller, animated: true, completion: nil)

Наконец, чтобы угадать догадки, реорганизуйте свои операторы if, чтобы только вычтите одно из догадок, если значение угадывания не равно нулю, иначе ... игра окончена.

if guesses != 0 {
    Turns.text = String(guesses)
    guesses -= 1
} else {
    //Game over, reset, etc.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...