使用 swift 和 spritekit,你如何阻止场景在变得活跃/移动到前台后取消暂停?
Posted
技术标签:
【中文标题】使用 swift 和 spritekit,你如何阻止场景在变得活跃/移动到前台后取消暂停?【英文标题】:Using swift and spritekit, how do you stop the scene from unpausing after becoming active / moving to foreground? 【发布时间】:2018-08-16 02:14:05 【问题描述】:我的 AppDelegate 中有以下代码:
func applicationDidEnterBackground(_ application: UIApplication)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "PauseGame"), object: self)
在我的 GameScene.swift 文件中,我有观察者:
NotificationCenter.default.addObserver(self, selector: #selector(GameScene_split.pauseGame), name: NSNotification.Name(rawValue: "PauseGame"), object: nil)
这是它调用的函数:
@objc func pauseGame()
self.isPaused = true
isGamePaused = true
pauseButton.texture = SKTexture(imageNamed: "PlayButtonWhite")
好的,所以当home键被按下,应用程序进入后台时,这个pauseGame函数确实被调用了,因为当我点击回到应用程序时,pauseButton纹理已经变成了“PlayButtonWhite”,但是游戏没有暂停。
关于如何阻止游戏在应用激活时自动取消暂停的任何想法?
【问题讨论】:
这可能就是你要找的***.com/questions/26317553/… 【参考方案1】:当游戏恢复时,场景(不知何故)自动取消暂停。
但是您可以检查您的财产isGamePaused
并再次暂停游戏。
这是您的场景的代码
override func update(_ currentTime: TimeInterval)
guard !isGamePaused else
self.view?.isPaused = true
return
让我知道它是否有效。
【讨论】:
以上是关于使用 swift 和 spritekit,你如何阻止场景在变得活跃/移动到前台后取消暂停?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 和 SpriteKit 中使用 UISwipeGestureRecognizer 而不是 touchesMoved?
如何使用 Swift SpriteKit 在 For 循环中一一创建 SKSprite 节点