所以我有一个使用插页式广告的应用。特别是它是一个用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)
}
}
答案 0 :(得分:1)
您可以使用admob的委托方法,因此当要显示插页式广告时,您可以删除重启按钮或设置条件,以便在显示广告时不起作用。如果使用isPaused bool运行,暂停游戏也很重要。 https://developers.google.com/admob/ios/ad-events