gpt4 book ai didi

swift - 如何在不出现性能问题的情况下暂停和停止 SKScene?

转载 作者:行者123 更新时间:2023-11-30 12:58:31 24 4
gpt4 key购买 nike

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

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

有什么方法可以暂停和停止SKScene及其更新功能吗?

最佳答案

Apple 的 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
}

希望这有帮助。

关于swift - 如何在不出现性能问题的情况下暂停和停止 SKScene?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40130340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com