我使用Xcode来制作iOS应用程序的主要原因之一就是它的storyboard界面构建器。但当我发现不应该在spriteKit中使用storyboards时,我感到很失望。如果没有一个好的可视化构建器,我很难为游戏菜单设计一个漂亮的界面。有没有办法在storyboards中启动一个spriteKit应用程序,然后通过点击“开始游戏”按钮切换到spriteKit场景,在游戏失败时在代码中切换回storyboards(使用swift)?请帮忙解答,谢谢。
-Callum-
-Callum-
一个SpriteKit场景是在SKView的实例上呈现的,SKView是一个子类化的UIView。
对于使用SpriteKit制作的iOS游戏,需要设置至少一个viewController,可以在App delegate中以编程方式或在storyboard中进行设置,以便在其中显示SKScene。SKScene将显示在此VC的主视图上。
因此,如果您正在使用storyboard,则iOS游戏将必须从中实例化根viewController。您可以轻松设计viewController上的UI,并在按下按钮时从代码中呈现游戏,无论是在同一viewController还是新的viewController中。所有这些都将在阅读像这样的使用Swift的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)
}
}
如果想从场景返回到主菜单,请查看这个答案。