gpt4 book ai didi

ios - 在 Swift SpriteKit 中的场景之间显示 Admob Interstitial 广告

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:09 25 4
gpt4 key购买 nike

我想知道如何在展示 GameOverScene 时设置 Admob Interstitial 广告。我应该怎么做才能在游戏结束时仅偶尔显示广告?我如何在 Swift 中实现它?

我指的是这篇文章 How to call admob interstitial ad using swift, spritekit and xcode?但我想知道如何在场景之间调用广告。

编辑这是我用来展示广告的代码

class GameViewController: UIViewController, GADInterstitialDelegate {

var interstitial = GADInterstitial()
var intersitialRecievedAd = false
let defaults = NSUserDefaults.standardUserDefaults()

override func viewDidLoad() {
super.viewDidLoad()

interstitial.delegate = self
self.interstitial = createAndLoadAd()

let timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "checkIfAdIsToBeDisplayed:", userInfo: nil, repeats: true)

//Scene implementation, boring stuff, got nothing to do with the ads...
...
}

func checkIfAdIsToBeDisplayed(timer:NSTimer) {



if defaults.boolForKey("adToBeShown") == true && intersitialRecievedAd == true {

showInterstitial()
defaults.setBool(false, forKey: "adToBeShown")
intersitialRecievedAd = false


} else {


}

}

func interstitialDidReceiveAd(ad: GADInterstitial!) {


intersitialRecievedAd = true

}


func createAndLoadAd() -> GADInterstitial {
var ad = GADInterstitial(adUnitID: "...")
ad.delegate = self
let request = GADRequest()
request.testDevices = ["..."]
ad.loadRequest(request)
return ad
}

func showInterstitial(){
if self.interstitial.isReady {
self.interstitial.presentFromRootViewController(self)
self.interstitial = createAndLoadAd()
}
}






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

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

此代码使用计时器不断检查 gameOverScene 是否已呈现。当 gameOverScene 出现时,我将 true 分配给 "adToBeShown" bool 值。这不是最好的方法,谁能告诉我如何在出现场景时直接调用广告?

最佳答案

为什么不使用 NSNotificationCenter 或委托(delegate)来调用 showInterstitial()。

例如

在 gameViewController 的 viewDidLoad 中添加这个

 NSNotificationCenter.defaultCenter().addObserver(self, selector: "showInterstitial"), name:"showInterAdKey", object: nil);

当您想展示您使用的场景中的广告时

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

您还可以使用类似我在 github 上发布的帮助器这样的工具,它使这更容易,并且您的 ViewController 保持干净 https://github.com/crashoverride777/Swift-2-iAds-and-AdMob-Helper

关于ios - 在 Swift SpriteKit 中的场景之间显示 Admob Interstitial 广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34452261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com