使用Xcode代替其他应用程序制作iOS应用程序的主要原因之一是故事板界面构建器。当我发现你不打算使用带有spriteKit的故事板时,我感到很不高兴。我觉得很难为没有良好视觉构建器的游戏菜单设计一个漂亮的界面。有没有办法使用故事板启动spriteKit应用程序,然后点击一下"开始游戏"按钮,切换到spriteKit场景,然后当你输掉游戏时,在代码切换回故事板(使用swift)?请帮助和谢谢。
-Callum -
答案 0 :(得分:6)
SpriteKit场景呈现在SKView的一个实例上,它是一个子类UIView。
对于使用SpriteKit制作的iOS游戏,需要至少设置一个viewController,可以在App委托中编程,也可以在故事板中设置,可以在其上显示SKScene。正是在这个VC的主要观点上,SKScene将被展示出来。
因此,如果您使用的是故事板,iOS游戏必须从中实例化根viewController。您可以在viewController上轻松设计UI,并在按下按钮时在代码中显示游戏,可以是在同一个viewController中,也可以是新的。一旦你使用像this这样的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)
}
}
至于从场景返回主菜单,请查看此answer。