1

機能とボタンを備えた一時停止システムがあり、それは完璧に機能します。アプリがバックグラウンドに入ると自動的に一時停止し、戻ってくると自動的に一時停止を解除することを知っています。私の問題は、一時停止を維持する方法がわからないことです再びアクティブになったとき。

func applicationWillResignActive(application: UIApplication) {

    NSNotificationCenter.defaultCenter().postNotificationName("Pause", object: nil) // tried here
}        


func applicationDidBecomeActive(application: UIApplication) {

    NSNotificationCenter.defaultCenter().postNotificationName("Pause", object: nil) // tried here
}

両方の方法を別々に試してみましたが、ゲームは実行され続け、一時停止メニュー (ゲームプレイの上のレイヤー) が表示され、バックグラウンドで実行されることがあります。では、これを達成する正しい方法は何ですか?

4

1 に答える 1

0

シーンまたはビューでは、オブザーバーを追加することで一時停止を処理できるはずです

    NSNotificationCenter.defaultCenter().addObserver(self,selector:Selector("pauseGame:",name:"Pause",object:nil)

次に、これを処理する関数を追加します

func pauseGame(notification:NSNotification)
{
    self.paused = true;
}

ここで、iOS 8 には CBApplicationDidBecomeActive が望ましくない結果を引き起こす可能性があるバグがあることがわかったので、SKView のクラスで次のようにオーバーライドする必要があることを覚えておいてください。

class GameSceneView : SKView
{
    ...//Other Code
    func CBApplicationDidBecomeActive()
    {
    }
}
于 2015-10-16T22:20:45.020 に答える