Comment puis-je mettre en pause un jeu dans SpriteKit et SceneKit – SWIFT

J'essaie de mettre en pause mon jeu en touchant un button mais je n'arrive pas à le faire fonctionner.

J'ai essayé ceci:

pause = SKSpriteNode (imageNamed: "pause.png") pause.size = CGSizeMake(30, 30) pause.position = CGPointMake(30, 30) self.addChild(pause) 

et j'essaie d'appeler une fonction comme celle-ci:

 func touchesBegin (touches: NSSet!, withEvent event: UIEvent!) { for touch: AnyObject in touches { let location = touch.locationInNode(self) if self.nodeAtPoint(location) == self.pause { let skView = self.view as SKView skView.paused = true } } } 

Quand je touche le button pause rien ne se passe … qu'est-ce qui ne va pas?

Je vous remercie!

J'ai résolu par moi-même le problème:

voici ma fonction de code:

  override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) { var touch:UITouch = touches.anyObject() as UITouch pauseText.text = "Pause" pauseText.fontSize = 50 pauseText.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2) /* button play/pause */ var locationPause: CGPoint = touch.locationInNode(self) if self.nodeAtPoint(locationPause) == self.pause { addChild(pauseText) // add the text pause.removeFromParent () // to avoid error when you touch again self.runAction (SKAction.runBlock(self.pauseGame)) } } 

Pour reprendre le jeu il suffit d'append ce code avant le dernier "}":

  if self.nodeAtPoint(locationPause) == self.pauseText { pauseText.removeFromParent() // remove the pause text self.view.paused = false // resume the game addChild(pause) // add the pause button } 

Et dans la sous-class SKScene, ajoutez cette fonction pour append une label pendant la pause:

 func pauseGame() { self.view.paused = true // to pause the game }