2016-06-22 3 views
0

ゲームアプリが終了したときに追加を表示しようとしていました。私はGameScene.swiftで変数を使ってゲームを作成しました。その変数をGameViewController.swiftで呼び出します。ただし、ゲームの開始直後にaddが表示されます。誰かが間違っていることを指摘できますか?ここに私のコードです:ゲームがスプライトキットとiOSで終了したときにインタースティシャルのadmobを表示

import UIKit 
import SpriteKit 
import GoogleMobileAds 

private var interstitial: GADInterstitial? 

class GameViewController: UIViewController, GADInterstitialDelegate { 

    private var interstitial: GADInterstitial? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     interstitial = createInterstitial() 
    } 

    override func viewWillLayoutSubviews() { 
     super.viewWillLayoutSubviews() 

     if let scene = GameScene(fileNamed:"GameScene") { 
      // Configure the view. 



      let skView = self.view as! SKView 
      skView.showsFPS = true 
      skView.showsNodeCount = true 

      /* Sprite Kit applies additional optimizations to improve rendering performance */ 
      skView.ignoresSiblingOrder = true 

      /* Set the scale mode to scale to fit the window */ 
      scene.scaleMode = .AspectFill 

      skView.presentScene(scene) 
     } 
    } 

    override func prefersStatusBarHidden() -> Bool { 
     return true 
    } 


    private func createInterstitial() -> GADInterstitial { 
     let interstitial = GADInterstitial(adUnitID: "ca-app-pub-5713504307801022/7610056592") 
     interstitial.delegate = self 
     let request = GADRequest() 

     request.testDevices = ["ca-app-pub-5713504307801022/7610056592"] 
     interstitial.loadRequest(request) 
     return interstitial 
    } 

    func interstitialDidDismissScreen(ad: GADInterstitial!) { 
     interstitial = createInterstitial() 
    } 

    func interstitialDidReceiveAd(ad: GADInterstitial!) { 

     if (interstitial!.isReady) { 
      if gameOver1 == true { 
      self.interstitial!.presentFromRootViewController(self) 
      interstitial = createInterstitial() 
      } 
     } 
    } 

} 
+0

gameOver1 Boolの値は正しいですか?あなたはそれをチェックするためにログにその値を印刷できますか? –

+0

はい、そうです。私は値をtrueに割り当てており、それを印刷すると真となります。 –

答えて

0

まず - これはあなたがロードし、AdMobのインタースティシャル広告をリサイクルする方法である - https://stackoverflow.com/a/37938286/2405378

セカンド - viewWillLayoutSubviewsを複数回呼び出すことができ、それぞれの時間は、この方法はGameSceneの新しいインスタンスを作成します - gameOver1は偽ですか?

+0

GameViewController + GADInterstitialDelegate.swiftとAdMobHelper.swiftはどうやって取得しましたか?いくつかのフレームワークをインポートする必要がありましたか? –

+0

いいえ - これは "私"のコードです。この2つのファイルをプロジェクトに追加するだけです。 – mikem