2016-10-10 65 views
0

我想從教程中創建一個簡單的遊戲,但代碼似乎沒有工作,所以我認爲Swift自寫入以來已經發生了變化。我在Swift 2.2中使用XCode 7.3.1。無法用覆蓋初始化方法調用類

我創建一個從SKScene繼承並重寫原來的init方法一個新的類:

import SpriteKit 

class BallScene: SKScene { 
    override init (size: CGSize) { 
     super.init(size: size)  
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 

的GameViewController類無法創建BallScene類和報告錯誤的實例(標記爲*>):無法調用初始化爲「BallScene」類型的參數列表「(尺寸:CGSize,() - >())」

import UIKit 
import SpriteKit 

    class GameViewController: UIViewController { 

     override func viewDidLoad() { 
      super.viewDidLoad() 

     *>  let scene = BallScene(size: view.bounds.size) { 
       // Configure the view. 
       let skView = self.view as! SKView 
       skView.showsFPS = true 
       skView.showsNodeCount = true 
       skView.ignoresSiblingOrder = true 
     *>   scene.scaleMode = .AspectFill 
     *>   skView.presentScene(scene) 
      } 
     } 
//more code 
} 

顯然參數類型初始化的被拒絕,但一切似乎好的。

任何想法?

非常感謝。 Kw

回答

1

不太清楚你在做什麼。爲什麼在啓動BallScene後有一個{}大括號。我嘗試你的代碼,刪除{}作品。

class GameViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let scene = BallScene(size: view.bounds.size) 
     // Configure the view. 
     let skView = self.view as! SKView 
     skView.showsFPS = true 
     skView.showsNodeCount = true 
     skView.ignoresSiblingOrder = true 
     scene.scaleMode = .aspectFill 
     skView.presentScene(scene) 
    } 
//more code 
} 

如果這不是你想要的,你能解釋一下爲什麼你嘗試有後{}的init-ING BallScene

+0

謝謝,非常有幫助。 – Kwangle

相關問題