Je développe un jeu avec SpriteKit qui peut être mis en pause pendant l'exécution et peut être repris. Mais j'ai un problème avec applicationDidEnterBackground
quand le button d'accueil est pressé pendant que le jeu est en pause parce que quand je reprends le jeu les entités commencent à bouger immédiatement même si le jeu a été mis en pause avant. Je ne peux pas find un moyen d'implémenter applicationDidEnterBackground
et d'autres methods connexes dans AppDelegate
car il n'y a pas de connection entre cela et mon GameScene.swift
Je mets en pause les entités avec le code
entitiesLayerNode.paused = true gameState = .GamePaused
MODIFIER:
Je veux mettre explicitement en pause le entitiesLayerNode
parce que j'ai d'autres nœuds «en mouvement» que je veux garder. Au problème est qu'avec la suggestion donnée ci-dessous cette méthode fait une pause tout! J'ai juste besoin de mettre en pause cette couche. Je pense que ce problème est que je ne peux pas accéder à l' entitiesLayerNode
du View Controller. J'utilise généralement l'extrait
let mainScene = scene as GameScene mainScene.entitiesLayerNode.pause = true
Mais Xcode me donne une erreur que la scene
est un identifiant non résolu.
Assez la même chose qu'ici
AppDelegate:
func applicationWillResignActive(application: UIApplication) { NSNotificationCenter.defaultCenter().postNotificationName("PauseGameScene", object: self) }
GameSceneViewController:
override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("pauseGameScene"), name: "PauseGameScene", object: nil) } func pauseGameScene() { if self.skView.scene != nil { self.skView.paused = self.skView.scene.paused = true } }