2016-03-28 13 views
2

私はSwiftとXcodeで、iOS用の簡単なテキストの冒険をしようとしています。ゲームはスタートボタンを持つGameSceneで始まります。ボタンにタップを登録すると、最初のPlaySceneインスタンスに移動します。それは何らかのテキスト(シーンの説明)と2つのオプション(ボタンAとB)を持っています。ボタンにタップを登録すると、対応するPlaySceneインスタンスに移動します。 EndSceneに達するまで、テキストだけとボタンを再起動します。SKSceneのサブクラスのイニシャライザを作成する方法

私の考えは、シーンが想定しているテキストとそれに続く次のシーンを取るPlayScene用のイニシャライザを実装することでした。だから私のPlayScene.swiftに私は、次を追加しました:

let sceneText: String 
let nextSceneA: PlayScene 
let nextSceneB: PlayScene 

init(sceneText: String, nextSceneA: PlayScene, nextSceneB: PlayScene) { 
    self.sceneText = sceneText 
    self.nextSceneA = nextSceneA 
    self.nextSceneB = nextSceneB 
} 

私はこのエラーを取得する:

'required' initializer 'init(coder:)' must be provided by subclass of 'SKScene'

それはSKSceneのサブクラスにカスタム初期化子を作成する方法がないということですか?どのように私はそれのようなシーンのシーケンスを実装することができますか?

+1

'init(coder:)'を実装してエラーを投げてください。赤い停止記号をクリックすると、Xcodeがこれを行うべきです。 – dan

答えて

2

init(coder :)を実装する必要がありますが、すべてがエラーを返す場合もあります。

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

こんにちは!私はXcodeが提供したことをやってみた。 'Super.initは初期化子から戻る前にすべてのパスで呼び出されていません。 ' – Zim

+1

私の初期化子の最後に' super.init() 'を追加して動作しました。 – Zim

関連する問題