下面我有兩種不同的方法來使用視圖控制器和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的東西。
我更喜歡有兩個視圖控制器的第一種方式,因爲我認爲使用幾個視圖控制器可以讓我的遊戲佈局更容易。
我最不喜歡的方法是多個場景,因爲我用精靈套件和數學來佈置所有東西並不是那麼棒。
第一種方法甚至有可能嗎?如果有的話,任何建議都會很棒。如果不是,推薦的方法是什麼?