2016-08-01 6 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의 하단에 두 가지 기능을 만듭니다

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으로 이동하여 버튼이 눌려 졌을 때 버튼에 액션을 추가하는 위치를 찾으십시오. 예를 들어, 재설정 게임 버튼은 장면을 재설정합니다. 거기에 이것을 추가하고 다음과 같이 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 


     } 

마지막 단계. 당신이 간질 광고를 게재하고 싶은 장면의 바닥에이 두 가지 기능을 추가

지금
func displayAd() { 



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


} 

func checkAd() { 


    if playCount % 4 == 0 { 

     displayAd() 

    } 

} 

} 

사용자가 리셋 게임 버튼을 누르거나 사망하는 모든 네 번째, 삽입 광고의 광고는 표시해야한다. 이게 도움이 되길 바란다.

편집 : 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

GADInterstitialDelegate –

+0

을가있는 UIViewController를 말한다 어디 클래스 GameViewController까지 가서 추가 롤 나는 것을 선언하는 것을 잊었다 생각하지 못할! 하하 Thankyou – Vic

+0

게시물이 어떻게이 질문에 대한 답을 설명하는지 편집 할 수 있습니까? StackOverflow에서는 코드 덤프가 권장되지 않습니다. 이들은 사람들에게 문제 해결 방법을 가르치지 않기 때문에별로 도움이되지 않습니다. 그들은 단지 복사 - 붙여 넣기 코딩을 권장합니다. 감사! –