使用 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 节点

如何在 Swift 和 SpriteKit 中添加涟漪效果

如何使用 swift 使用带有 spriteKit 的情节提要

SKPhysics 与 Swift 和 SpriteKit

如何使用 Swift 正确切换 SpriteKit 中的 SKScene?