首页 > 解决方案 > 当用户将应用程序发送到后台时关闭重力

问题描述

我在 SpriteKit 中有一个简单的重力相关游戏。在游戏开始之前,重力已关闭。当触摸屏幕时,会调用以下代码:

missile?.physicsBody?.affectedByGravity = true

如果您收到一条消息并返回它,我希望关闭重力,直到您再次触摸屏幕。

我猜它是 AppDelegate 中的东西,但我确实被困在那里。

提前感谢您的任何指点。

标签: sprite-kitappdelegate

解决方案


UIApplication.willResignActiveNotification首先像这样为你的 mainNode添加一个观察者:

NotificationCenter.default.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.willResignActiveNotification, object: nil)

现在你可以暂停你的 mainNode appMoveToBackground

@objc func appMovedToBackground() {
    mainNode.isPaused = true
}

确保删除观察者deinit

deinit {
    NotificationCenter.default.removeObserver(self)
}

推荐阅读