2017-08-31 121 views
1

在spriteKit下運行的應用程序。幾天前,gameScene在加載gameViewController後加載。今天,我改變了它的加載動作,只有當單擊「開始」按鈕時才加載gameScene,這意味着gameScene背景色是不可見的,我需要爲gameViewController設置背景色。這是一個非常簡單的任務,之前已經完成了很多次 ,但它堅持在淺灰色(下圖)。gameViewController背景顏色無法更改

無法在spriteKit下更改gameViewController背景色嗎?

我必須改變gameScene背景顏色嗎?

override func viewDidLoad() { 
     super.viewDidLoad() 
     self.view.backgroundColor = .green 

     // ....... 
    } 

    @IBAciton func loadGameView() { 
     if let view = self.view as! SKView? { 
      // Load the SKScene from 'GameScene.sks' 
      // if let scene = SKScene(fileNamed: "GameScene") { 
      if let scene = GameScene(fileNamed: "GameScene") { 
       scene.viewController = self 
       scene.size = self.view.frame.size 
       scene.scaleMode = .aspectFill 
       // Present the scene 
       view.presentScene(scene) 

      } 

      view.ignoresSiblingOrder = false 
      view.showsFPS = false 
      view.showsNodeCount = false 
      view.showsDrawCount = false 


     } 

    } 

enter image description here

回答

1
if let scene = GameScene(fileNamed: "GameScene") { 
      scene.viewController = self 
      scene.size = self.view.frame.size 
      scene.scaleMode = .aspectFill 

      //ADD THIS 
      scene.color = .green 
      scene.colorBlendFactor = 1 

      // Present the scene 
      view.presentScene(scene) 

    } 
+0

我知道這個解決方案可以設置背景顏色,但就是不想「開始」按鈕被點擊之前加載GameScene。其他解決方案?謝謝。 – jdleung

+0

我不太瞭解你的問題。如果你改變了UIViewController,就像正常的UIViewControlle一樣。但是我個人使用SKScene作爲菜單 –

+0

是的,通常UIViewController的背景色可以通過'self.view.backgroundColor'來設置,但是在SpriteKit下這似乎不起作用。 – jdleung