如何使用swift在spriteKit中使用故事板

我使用Xcode代替其他应用程序制作iOS应用程序的主要原因之一是故事板界面构建器 . 当我发现你不打算使用带有spriteKit的故事板时,我感到很不高兴 . 我觉得很难为没有良好视觉构建器的游戏菜单设计一个漂亮的界面 . 有没有办法使用故事板启动spriteKit应用程序,然后单击“开始游戏”按钮,切换到spriteKit场景,然后当你输掉游戏时,在代码切换回故事板(使用swift)?请帮助和谢谢 .

-Callum-

回答(1)

2 years ago

SpriteKit场景呈现在SKView的实例上,SKView是一个子类UIView .

对于使用SpriteKit制作的iOS游戏,需要至少设置一个viewController,可以在App委托中编程,也可以在故事板中设置,可以在其上显示SKScene . 这个VC的主要观点是将展示SKScene .

因此,如果您使用的是故事板,则iOS游戏必须从中实例化根viewController . 您可以在viewController上轻松设计UI,并通过按下按钮在同一个viewController或新窗口中显示代码中的游戏 . 一旦您使用Swift(如this)阅读SpriteKit的初学者教程,所有这一切都将很明显 .

假设你的根viewController有你的主菜单(在另一个名为menuView的视图上),上面有一个播放按钮 . 现在通过按下按钮呈现游戏看起来像这样:

class MyViewController: UIViewController {
  @IBOutlet wear var menuView: UIView?
  @IBOutlet weak var playButton: UIButton?

  @IBAction func likedThis(sender: UIButton) {
    //Hide the menu view
    menuView.hidden = true

    //instantiate and present the scene on the main view
    let scene = MyScene(size: view.bounds.size)
    let skView = self.view as SKView
    skView.presentScene(scene)
  }
}

至于从现场回到主菜单,看看这个answer .