Я создаю эту игру в SpriteKit. При первом запуске GameViewController
представляет другой ViewController, называемый MenuViewController
, связанный с раскадровкой. А в MenuViewController
есть кнопка воспроизведения, которая представляет сцену SKS, которая называется GameScene
.
Я понял, как представить MenuViewController
из GameViewController
, но не могу найти способ представить GameScene
, когда нажимается кнопка воспроизведения. В моем коде, когда кнопка нажата, на самом деле ничего не происходит.
GameViewController
:
import UIKit
import SpriteKit
class GameViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
let storyBoard: UIStoryboard = UIStoryboard(name: "MenuViewController", bundle: nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "MenuViewController") as! MenuViewController
self.present(vc, animated: true, completion: nil)
}
}
И в MenuViewController
:
import UIKit
import SpriteKit
class MenuViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func playButtonTapped(_ sender: Any) {
if let view = self.view as! SKView? {
let scene = GameScene(size: view.bounds.size)
scene.scaleMode = .aspectFill
view.presentScene(scene)
view.ignoresSiblingOrder = true
view.showsFPS = false
view.showsNodeCount = false
view.showsPhysics = false
}
}
}
Также Я получил это предупреждение, напечатанное в консоли:
SKView: ignoreRenderSyncInLayoutSubviews is NO. Call _renderSynchronouslyForTime without handler
Я не знаю, связано ли это ...
Я установил вид Раскадровка MenuViewController
будет равной SKView. Я не могу найти способ заставить GameScene
появиться. Ничего не происходит.
Спасибо!