Как определить, переходит ли игра SpriteKit в фоновый режим(пользователь выходит из приложения)

#ios #swift #xcode #sprite-kit

Вопрос:

Я создаю игру SpriteKit, и в моей игровой сцене я не хочу, чтобы они могли закрыть приложение, а затем вернуться в него позже и продолжать играть с того места, на котором они остановились.

После некоторых исследований я выяснил, что Центр уведомлений позволяет приложению знать, когда оно перемещается в фоновый режим, но я не знаю, как это реализовать в моей игре? Это какое-то переопределение функции или что-то, что я добавляю в свою функцию «didMove для просмотра».

Я не уверен, с чего начать, потому что я использую SpriteKit, и я не смог найти в Интернете ничего, описывающего, как это сделать.

Спасибо за вашу помощь!

Комментарии:

1. Поговорите с контроллером просмотра, на котором размещена игра SKView .

2. Вы можете использовать SceneDelegate методы для обработки событий жизненного цикла. developer.apple.com/documentation/uikit/app_and_environment/…

Ответ №1:

Я не уверен, что SpriteKit работает так же, но если мы говорим об обычных приложениях swift, вы можете использовать файлы AppDelegate или SceneDelegate для этого, например, я использовал AppDelegate для той же задачи (но я вообще не использовал SceneDelegate в своем приложении! Я думаю, что в вашем случае SceneDelegate будет лучше)

 func applicationDidEnterBackground(_ application: UIApplication) {
        let viewControllers = navController.viewControllers
        for viewController in viewControllers {
            if viewController.isKind(of: YourTargetViewController.self) {
                // here put your code to open desired ViewController
            }
        }
    }