【发布时间】:2020-02-12 03:58:51
【问题描述】:
我正在 SpriteKit 中创建这个游戏。
在第一次启动时,GameViewController 会呈现另一个名为 MenuViewController 的 ViewController,并与情节提要相关联。
在MenuViewController 中有一个播放按钮,它将显示一个名为GameScene 的SKScene。
我想出了如何从GameViewController 呈现MenuViewController,但是当点击播放按钮时我找不到呈现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 出现。什么都没有发生。
谢谢!
【问题讨论】:
标签: ios swift uiviewcontroller skscene