如何释放场景,直到插入非页内广告?

时间:2017-05-31 14:31:16

标签: ios swift sprite-kit admob interstitial

所以我有一个使用插页式广告的应用。特别是它是一个用Swift编写的SpriteKit游戏。

我有代码设置,当用户从场景中的游戏按下重放按钮时,广告出现,然后它变回游戏场景以重放游戏。现在我遇到问题时场景会在显示插页式广告时发生变化,有时这种情况发生得不够快,用户可以再次点按重启按钮,导致游戏崩溃。

在广告被调用时,有没有办法冻结屏幕并忽略任何点按?并且在广告被解雇后仅改变场景?

按下重启按钮时的代码;

 if restartButton.contains(pointOfTouch) {
    score = 0
    ballMovementSpeed = 2
    displayAd()
    delay(2.0) {
    self.restartScene()
 }

我对插入interstitialDelegate的位置感到有点困惑。我正在尝试实现func interstitialDidDismissScreen(ad:GADInterstitial!){}以触发更改回我的游戏场景,当我关闭广告时没有任何反应。

我尝试将它放在override func didMove(查看:SKScene){}以及按下重启按钮时仍然无效。这就是我将广告称为

的方式
fun loadAndShow() {
  myAd = GADInterstitial()
  let requestI = GADRequest()
  myAd.setAdUnitID("adID")
  requestI.testDevices = [kGADSimulatorID, "test device"]
  myAd.delegate = self
  myAd.load(requestI)
}

func interstitialDidReceiveAd(_ ad: GADInterstitial) {
  if (self.myAd.isReady) {
    myAd.present(fromRootViewController: self)
  }
}

1 个答案:

答案 0 :(得分:1)

您可以使用admob的委托方法,因此当要显示插页式广告时,您可以删除重启按钮或设置条件,以便在显示广告时不起作用。如果使用isPaused bool运行,暂停游戏也很重要。 https://developers.google.com/admob/ios/ad-events