如何为在xcode中使用swift制作的spritekit游戏创build主菜单?

我使用spritekit和swift在xcode中创build了一个非常简单的游戏。 我已经完成了编码实际的游戏本身。 现在我想创build一个主菜单,当游戏打开的时候,会有一个button的菜单进入设置或开始游戏。 我不知道如何做到这一点。 我应该使用故事板吗? 如果是这样,我怎么能在xcode中实现它。 感谢大家 :)

Swift 3.0

import SpriteKit class MenuScene: SKScene { var playButton = SKSpriteNode() let playButtonTex = SKTexture(imageNamed: "play") override func didMove(to view: SKView) { playButton = SKSpriteNode(texture: playButtonTex) playButton.position = CGPoint(x: frame.midX, y: frame.midY) self.addChild(playButton) } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { let pos = touch.location(in: self) let node = self.atPoint(pos) if node == playButton { if let view = view { let transition:SKTransition = SKTransition.fade(withDuration: 1) let scene:SKScene = GameScene(size: self.size) self.view?.presentScene(scene, transition: transition) } } } } } 

创build两个新文件。 一个精灵套件场景和一个cocoa触摸文件。 将它们命名为相同,例如MenuScene。 要创build文件,请单击xcode项目边栏中的文件夹。 然后当你运行你的应用程序进入GameViewController文件时,显示MenuScene。 viewDidLoad下有一行。 if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {改变这个if let scene = MenuScene.unarchiveFromFile("MenuScene") as? Menu Scene { if let scene = MenuScene.unarchiveFromFile("MenuScene") as? Menu Scene {然后在你的MenuScene中,你必须有一个button,引导你到你的GameScene

 import SpriteKit class MenuScene: SKScene { var playButton = SKSpriteNode() let playButtonTex = SKTexture(imageNamed: "play") override func didMoveToView(view: SKView) { playButton = SKSpriteNode(texture: playButtonTex) playButton.position = CGPointMake(frame.MidX, frame.midY) self.addChild(playButton) override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { if let touch = touches.first as? UITouch { let pos = touch.locationInNode(self) let node = self.nodeAtPoint(pos) if node == playButton { if let view = view { let scene = GameScene.unarchiveFromFile("GameScene") as! GameScene scene.scaleMode = SKSceneScaleMode.AspectFill view.presentScene(scene) } } } } 

问如果你需要进一步的解释。