在 Spritekit (Swift) 中实现 "game quit" 选项的最简单方法是什么?

what's the easiest way to implement a "game quit" option in Spritekit (Swift).

我希望我的游戏在用户触摸 "game quit" 选项时退出,但我似乎无法在场景 variable/reference。 "game quit" 应该相当于用户能够在 iPad 上退出游戏应用程序,所以当我在模拟器上测试它时,据推测,它应该完全退出模拟器,据我所知推断。请问你能帮忙吗?

愿Swift与你同在:)。

谢谢。

尼尔

注:

作为 iOS 的程序员,Apple 不允许您自行退出应用程序,请在此处查看原因:exit application when click button - iOS

总之,这里是您问题的答案。

首先,创建一个显示 quit 图像或您喜欢的文本的 SKNode。

给它起个名字:

myQuitImageSKNode.name = "Quit"

将此 SKNode 添加为相机的子节点,以便此图像或文本位于屏幕上的固定位置:

myScene.camera!.addChild(myQuitImageSKNode)

最后,将场景子类化并覆盖 touchesBegan(_:with:) 以检查用户是否触摸了您的退出图像或文本:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch: UITouch = touches.first!
    let touchedNode = self.atPoint(touch.location(in: self))

    if touchedNode.name == "Quit" {
        // exit from your app
    }
}

另一种方法是将退出按钮对应的 SKNode 子类化并覆盖 touchesBegan(_:with:)(这样就不需要检查名称)。

最后,要知道如何退出app,看这个响应的第一个link,或者抛出异常,或者调用fatalError()...不过要注意,Apple不会像这样并可能决定不在他们的商店中发布您的应用程序。