2017-04-07 92 views
1

我想实现一个主菜单到我的Spritekit游戏,但每当我尝试呈现场景时,我都会看到一个空白的灰色屏幕。下面是代码,现在,其中介绍了游戏本身,而不是一个菜单:Swift 2游戏主菜单

class GameViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let scene = GameScene(fileNamed:"GameScene") { 

     let skView = self.view as! SKView 
     skView.showsFPS = true 
     skView.showsNodeCount = true 
     skView.showsDrawCount = true 

     skView.ignoresSiblingOrder = true 

     scene.scaleMode = SKSceneScaleMode.AspectFill 
     skView.presentScene(scene) 

    } 
} 

我是新来这个,我不知道该怎么办,所以我试图与菜单现场更换GameScene,这给了我灰色的屏幕。任何帮助将不胜感激。

+0

有你创建了一个MenuScene?你是仅在场景编辑器或代码中创建它的? –

+0

@RonMyschuk是的,我只用代码做了我的MenuScene。 – shadokyr

+0

上面的代码从场景编辑器中编辑的.SKS文件加载场景。我会发布一些代码来加载一个仅在代码中创建的文件 –

回答

1

使用此代码来加载在代码中创建的,而不是在场景编辑器SKScene文件

override func viewWillLayoutSubviews() { 

    super.viewWillLayoutSubviews() 

    if let skView = self.view as? SKView { 

     if skView.scene == nil { 

      let scene = MenuScene(size: skView.bounds.size) 

      skView.showsFPS = false 
      skView.showsNodeCount = true 
      skView.showsPhysics = true 
      skView.ignoresSiblingOrder = true 

      scene.scaleMode = .aspectFill 

      skView.presentScene(scene) 
     } 
    } 
} 

,然后在MenuScene文件,您需要一个init FUNC

init(size: CGSize) { 

    super.init(size: size) 

    name = "menuScene" 
} 
+1

它的工作,谢谢! – shadokyr