2016-07-04 16 views
1

インタースティシャル広告を適切に処理するために、GameViewController.swiftファイルのGameScene.swiftファイルから変数を使用しようとしています。私のプレーヤーが死んでいるかどうかを決定するブール値です。SpriteKit - Swiftの別のシーンのブール値を使用する

var died = Bool() 

私はGameSceneで変数を作成しただけです。

私のGameSceneで死亡した== trueの場合、GameViewControllerに送信してインタースティシャル広告を表示します。私は本当にシーン間でブール値を渡す方法を知る必要があります。あなたの助けを進んでくれてありがとう。

答えて

1

これらの手順に従うことができます。

はあなたのGameSceneでこれを実行します。

あなたは GameViewController
protocol PlayerDeadDelegate { 
    func didPlayerDeath(player:SKSpriteNode) 
} 

class GameScene: SKScene { 
    var playerDeadDelegate:PlayerDeadDelegate? 
    ... 
    // during your game flow the player dead and you do: 
    playerDeadDelegate.didPlayerDeath(player) 
    ... 
} 

class GameViewController: UIViewController,PlayerDeadDelegate { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     if let scene = GameScene(fileNamed:"GameScene") { 
       ... 
       scene.playerDeadDelegate = self 
     } 
    } 

    func didPlayerDeath(player:SKSpriteNode) { 
     print("GameViewController: the player is dead now!!!") 
     // do whatever you want with the property player.. 
    } 
} 
0

あなたのGameSceneは、GameViewControllerオブジェクトを実際に指しているデリゲート(例えば、GameSceneDelegateプロトコルに準拠)として参照オブジェクトを持つ必要があります。その後、死んだ場合は、デリゲートメソッドを介してデリゲートオブジェクト(GameViewControllerオブジェクト)にこのイベントについて通知し、GameViewControllerクラスの上記のプロトコルに準拠してそのメソッドを実装します。

+0

私は初心者プログラマです。コードの例を教えてください。それとも時間がかかりますか? –

関連する問題