SpriteKit和SceneKit –如何完全暂停游戏?
我成功使用以下代码暂停了一个场景游戏:
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)
}
}
但是我有一个问题。游戏中的所有随机间隔都会创建对象并将其显示在屏幕上。当我暂停游戏时,它将继续在后台创建对象,而当我继续游戏时,在暂停期间创建的所有对象将同时显示在屏幕上。
我该如何解决?
回答:
暂停SKView时,无法将SKLabelNode(或其他任何东西)添加到场景中。您将需要返回运行循环,以便在暂停游戏之前添加您的文本。这是一种方法:
// Add pause text or button to sceneaddChild(pauseText)
let pauseAction = SKAction.run {
self.view?.isPaused = true
}
self.run(pauseAction)
以上是 SpriteKit和SceneKit –如何完全暂停游戏? 的全部内容, 来源链接: utcz.com/qa/399481.html