私の一時停止システムはゲーム内から完全に機能し、アプリがバックグラウンドに移動してから再びアクティブになると、ゲームは一時停止したままになりますが、現在の問題は、アクティブになったときに一時停止画面が表示されないことです.
AppDelegate:
func applicationDidBecomeActive(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("Pause", object: nil)
}
ビューコントローラー:
override func viewDidLoad() {
super.viewDidLoad()
let scene = GameScene()
// Configure the view.
let skView = self.view as! MainView
NSNotificationCenter.defaultCenter().addObserver(skView, selector: "setStayPaused", name: "Pause", object: nil)
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
scene.size = skView.bounds.size
skView.presentScene(scene)
}
MainView (私のカスタム skView):
class MainView: SKView {
var stayPaused = false as Bool
override var paused: Bool {
get {
return super.paused
}
set {
if (!stayPaused) {
super.paused = newValue
}
stayPaused = false
}
}
func setStayPaused() {
if (super.paused) {
self.stayPaused = true
}
}
}
ゲームシーン:
override func didMoveToView(view: SKView) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "pauseGame", name: "Pause", object: nil)
}
func pauseGame() {
if isFirstTime == false { // to make sure that the app did not just get launched
pauseScreen.hidden = false // doesn't show
pauseButton.hidden = false // doesn't show
view?.paused = true
scene?.paused = true
}
}