下面我有两种不同的方法来使用视图控制器和SKScene设置我的游戏。我没有花费太多时间,因为我希望其他解决方案中的其中一种能够发挥作用。在下面更详细描述 是:在Swift中使用多个ViewControllers和SKScene
- MainViewController - > GameViewController(保持SKScene)
- GameViewController(保持SKScene) - 使用协议
0.5二SKScenes /双迅速的自定义类。
1号
MainViewController - > GameViewController(持有SKScene)
当比赛结束的SKScene - 我要解雇GameViewController并返回MainViewController。
我已经没有运气让这个工作。我试过解聘视图控制器和我来最接近的是解雇SKScene使用的东西等等(在SKScene:
self.view?presentScene(nil)
或
self.dismiss(animated: false, completion: nil)
self.presentingViewController?.dismiss(animated: false, completion: nil)
,但我不能回去该MainViewController我试图创建与GameViewController参考弹出它喜欢:
weak var gameViewController:GameViewController? = GameViewController()
不幸的是,我无法找到合适的功能正常驳回
经过大量搜索而未找到答案,我想我会尝试一种不同的方法。
2号
GameViewController(持有SKView)则有GVC认为我想要的按钮和标签,并显示在上面的一幕。这是一个失败,按钮和标签没有zPositions并出现在场景的顶部。
在尝试调用场景之前,我试着对它们做.isHidden = true
,似乎可行,但是当我解散场景并尝试将它们更改回.isHidden = false
(尝试使用协议)时,我无法使其正常工作。 (正在关闭什么stvn描述How to reference the current view controller from a sprite kit scene)
我怀疑这第二种方式可能是这样做的好方法,但也许我只是没有正确接近它。
数0.5
然后最后我在想什么对,现在只是把第二现场“炫”之间来回。我相信这是做这件事的推荐方式,但我不确定如何处理它。如果我做了这个版本。我想为每个视图都有一个gameScene.swift/gameScene.sks(可能使用类似presenting a uiviewcontroller for skscene的东西。
我更喜欢有两个视图控制器的第一种方式,因为我认为使用几个视图控制器可以让我的游戏布局更容易。
我最不喜欢的方法是多个场景,因为我用精灵套件和数学来布置所有东西并不是那么棒。
第一种方法甚至有可能吗?如果有的话,任何建议都会很棒。如果不是,推荐的方法是什么?