Swift3.0 XCODE8 SpriteKit ホームボタンを押したときのポーズ設定

Swift3.0 XCODE8 SpriteKit ホームボタンを押したときのポーズ設定

ホームボタン押したときにバックグラウンドにアプリが切り替わり、そして、フォアグラウンドになると動き出すけど、何も処理を入れないとTimerが待機してて、フォアグラウンドに切り替わると複数のオブジェクトが重なり合ってしまった。

AppDelegate.swift

func applicationWillResignActive(_ application: UIApplication) {
      
        //ホームボタンが押されるとPause状態にする
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "PauseGameScene"), object: self)//PauseGameScen is method
        
        if let view = window?.rootViewController?.view as? SKView {//import SpriteKitを忘れずに
            view.scene?.isPaused = true
            print ("applicationWillResignActive , isPaused = true")
            
        }
    }
func applicationDidBecomeActive(_ application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "resumeGameScene"), object: self)//PauseGameScen is method
        if let view = window?.rootViewController?.view as? SKView {
            view.scene?.isPaused = false
            print ("applicationDidBecomeActive , isPaused = false")
        }
    }

GameScene.swift

override func didMove(to view: SKView)

PauseGameSceneとあるけどシーンクラスではなくて関数メソッドです。
これは、複数のシーンクラスで構成してても良さそう。

//ホームボタンが押されるとPause状態にする
        NotificationCenter.default.addObserver(self, selector: #selector(self.PauseGameScene), name: NSNotification.Name(rawValue: "PauseGameScene"), object: nil)
        //resume
        NotificationCenter.default.addObserver(self, selector: #selector(self.resumeGameScene), name: NSNotification.Name(rawValue: "resumeGameScene"), object: nil)

こちらの記事もどうぞ