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 scene

addChild(pauseText)

let pauseAction = SKAction.run {

self.view?.isPaused = true

}

self.run(pauseAction)

以上是 SpriteKit和SceneKit –如何完全暂停游戏? 的全部内容, 来源链接: utcz.com/qa/399481.html

回到顶部