2016-08-01 4 views

答えて

2

これは、GoogleMobileAds.sdkを所有し、googlemobileadsモジュールをGameViewController、GameScene、またはGameOverSceneにインポートした場合にのみ機能します。

私はあなたにクロスシーン広告の実装を示し、プログラムで広告の表示回数を制限します。

まず、あなたのGameViewControllerに:

import GoogleMobileAds 


class GameViewController: UIViewController, GADInterstitialDelegate { 



var myAd = GADInterstitial() 


override func viewDidLoad() { 
    super.viewDidLoad() 


    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.loadAndShow), name: "loadAndShow", object: nil) 

} 

はあなたのGameViewControllerの下部にある2つの関数を作成します

func loadAndShow() { 



    myAd = GADInterstitial() 
    let request = GADRequest() 
    myAd.setAdUnitID("ca-app-pub-3940256099942544/4411468910") 
    myAd.delegate = self 
    myAd.loadRequest(request) 



} 

func interstitialDidReceiveAd(ad: GADInterstitial!) { 

    if (self.myAd.isReady) { 

     myAd.presentFromRootViewController(self) 



    } 



} 

あなたはGameViewControllerで行われます。今すぐGameOverSceneまたはGameSceneに行きましょう。

グローバルint型変数を作成します。あなたのDidMoveToViewで

var playCount = Int() 

は言う:

playCount = 1 

この部分はちょっと、本当に、一種の混乱です。 touchesBeganに移動し、ボタンが押された場合にボタンにアクションを追加する場所を見つけます。たとえば、resetGameボタンはシーンをリセットします。これを追加して、次のようにplayButton Intを増やします。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    for touch in touches{ 



     let location = touch.locationInNode(self) 
     if resetGame.containsPoint(location) { 
      restartScene() 

      playCount += 1 


     } 

最後のステップ。あなたが間質広告を表示したいシーンの底にこの2つの機能を追加します。

は今
func displayAd() { 



NSNotificationCenter.defaultCenter().postNotificationName("loadAndShow", object: nil) 


} 

func checkAd() { 


    if playCount % 4 == 0 { 

     displayAd() 

    } 

} 

} 

ユーザーがリセットゲームのボタンを押すか、死ぬことを、すべての第四時間、インタースティシャル広告が表示されるはずです。私はこれが役立つことを願っています

EDIT:checkAd()関数を呼び出すことを忘れてしまいました。あなたのプレイヤーが死んでもどこでもこの機能を呼び出してください。 Bool変数が死亡またはゲームオーバーと呼ばれる場合は、同じ場所で呼び出します。たとえば...

if died == true { 
    checkAd() 
} 
0
import UIKit 

import SpriteKit 

import GoogleMobileAds 

var playCount = Int() 

class GameViewController: UIViewController, GADBannerViewDelegate { 
@IBOutlet var banner: GADBannerView! 

var myAd = GADInterstitial() 

override func viewDidLoad() { 
    super.viewDidLoad() 

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.loadAndShow), name: "loadAndShow", object: nil) 

    let scene = MainScene(size: CGSize(width: 1536, height: 2048)) 


       // Configure the view. 
     let skView = self.view as! SKView 
     skView.showsFPS = false 
     skView.showsNodeCount = false 

     /* 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) 

    banner.hidden = true 

    banner.delegate = self 

    banner.adUnitID = "ca-app-pub-8889875503423788/7902691359" 
    banner.rootViewController = self 
    banner.loadRequest(GADRequest()) 

} 

func loadAndShow() { 



    myAd = GADInterstitial() 
    let request = GADRequest() 
    myAd.setAdUnitID("ca-app-pub-8889875503423788/7902691359") 
    myAd.delegate = self 
    myAd.loadRequest(request) 



} 

func interstitialDidReceiveAd(ad: GADInterstitial!) { 

    if (self.myAd.isReady) { 

     myAd.presentFromRootViewController(self) 



    } 



} 

func adViewDidReceiveAd(bannerView: GADBannerView!) { 
    banner.hidden = false 
} 

func adView(bannerView: GADBannerView!, didFailToReceiveAdWithError error: GADRequestError!) { 
    banner.hidden = true 
} 

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

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone { 
     return .AllButUpsideDown 
    } else { 
     return .All 
    } 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Release any cached data, images, etc that aren't in use. 
} 

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

行くそれはのUIViewControllerを言うあなたのクラスGameViewControllerまでとGADInterstitialDelegate –

+0

を追加笑私はそれを宣言するのを忘れ信じてカント!こんにちはThankyou – Vic

+0

あなたの投稿を編集して、これが質問にどのように答えられるかを説明できますか? StackOverflowでは、コードダンプは推奨されません。問題を解決する方法を人々に教えるわけではありません。彼らはコピー・ペースト・コーディングを推奨しています。ありがとう! –

関連する問題