如何在没有性能问题的情况下暂停和停止SKScene?

时间:2016-10-19 11:36:05

标签: swift xcode sprite-kit skscene

我正在Xcode中使用Swift3编写程序。我在我的程序中使用SpriteKit和SKScene。如您所知,有一个预定义的更新函数在gamescene.sks中始终运行(即使视图已更改)。

我知道“self.scene.view.paused = YES;”不适用于始终调用的更新函数。

有没有办法暂停和停止SKScene及其更新功能?

1 个答案:

答案 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
}

希望这有帮助。