I succeeded to pause a scene game with this code:
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
var touch:UITouch = touches.anyObject() as UITouch
pauseText.text = "Continuer"
pauseText.fontSize = 50
pauseText.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)
/* bouton play/pause */
var locationPause: CGPoint = touch.locationInNode(self)
if self.nodeAtPoint(locationPause) == self.pause {
println("pause")
addChild(pauseText)
pause.removeFromParent()
paused = true
}
if self.nodeAtPoint(locationPause) == self.pauseText {
pauseText.removeFromParent()
paused = false
addChild(pause)
}
}
But I have a problem. All random interval the game create objects and display them on the screen. When I pause the game it continues to create objects in background and when I resume the game all objects created during the pause appear in same time on the screen.
How can i fix it?
You can't add the SKLabelNode (or anything else) to your scene while the SKView is paused. You will need to return to the run loop so your text is added before pausing the game. Here's one way to do that:
// Add pause text or button to scene
addChild(pauseText)
let pauseAction = SKAction.run {
self.view?.isPaused = true
}
self.run(pauseAction)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With