2017-04-07 75 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