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

を持っているのinit funcを必要とするファイルMenuSceneを作成しましたか?シーンエディタやコードのみで作成しましたか? –

+0

@RonMyschukうん、私はコードでMenuSceneを作っただけだ。 – shadokyr

+0

上記のコードはシーンエディタで編集された.SKSファイルからシーンをロードします。私はコードで作成されたファイルをロードするいくつかのコードを投稿します –

答えて

1

のみを使用していないシーンエディタでコードで作成されたSKSceneファイルをロードするには、このコードでは、あなたのMenuSceneで

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) 
     } 
    } 
} 

、その後、あなたが

init(size: CGSize) { 

    super.init(size: size) 

    name = "menuScene" 
} 
+1

それは働いた、ありがとう! – shadokyr

関連する問題