我正在Xcode中使用Swift3编写程序。我在我的程序中使用SpriteKit和SKScene。如您所知,有一个预定义的更新函数在gamescene.sks中始终运行(即使视图已更改)。
我知道“self.scene.view.paused = YES;”不适用于始终调用的更新函数。
有没有办法暂停和停止SKScene及其更新功能?
答案 0 :(得分:0)
Apples DemoBot总是一个很好的项目。
暂停游戏的最佳方法是创建一个世界节点并暂停该节点,而不是暂停skView。
let worldNode = SKNode()
将它添加到GameScene的didMoveToView中。
addChild(worldNode)
将要暂停的所有节点(或SKActions)添加到worldNode
worldNode.addChild(SOMENODE)
worldNode.addChild(SOMENODE2)
比你说的暂停方法
worldNode.isPaused = true
physicsWorld.speed = 0
在简历中你说
worldNode.isPaused = false
physicsWorld.speed = 1
对于更新方法,如果worlNode暂停,您可以提前退出
override func update(_ currentTime: TimeInterval) {
guard !worldNode.isPaused else { return }
// rest of your code
}
希望这有帮助。