sprite-kit - 当用户将应用程序发送到后台时关闭重力
问题描述
我在 SpriteKit 中有一个简单的重力相关游戏。在游戏开始之前,重力已关闭。当触摸屏幕时,会调用以下代码:
missile?.physicsBody?.affectedByGravity = true
如果您收到一条消息并返回它,我希望关闭重力,直到您再次触摸屏幕。
我猜它是 AppDelegate 中的东西,但我确实被困在那里。
提前感谢您的任何指点。
解决方案
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)
}
推荐阅读
- symfony - 如何使用单独的密码实体来防止用户使用旧密码更新密码
- webpack - html-webpack-plugin 没有插入 options.title
- keras - 如何正确训练 VGG16 Keras
- javascript - 我的机器人加入并离开不和谐机器人 heroku
- python - DataFrame 采用列并集并保留找到第一个非 NaN 值
- excel - 从用户表单更新多个工作表
- webpack - SASS DevTools 未指向变量声明
- asp.net - UWP 10.1 不支持 NewtonSoft 吗?
- node.js - 安装 react-paypal-button 时出现 npm 错误
- qt - Qt 窗口调整纵横比 1:1