2017-05-31 51 views
0

所以我有一个使用插页式广告的应用程序。具体来说,它是一个用Swift编写的SpriteKit游戏。如何释放场景直至插页式广告被解散?

我有代码设置,当用户从游戏对场景按下​​重放按钮会出现一个广告,然后将其变回游戏场景重播的比赛。现在,当我遇到问题时,场景会在插播式广告显示时发生变化,但有时这种情况发生得不够快,用户可以再次点击重新开始按钮,导致游戏崩溃。

有没有办法冻结屏幕和忽略任何水龙头,而广告被称为?广告被解散后,只有场景发生变化?

按下重启按钮时的代码;

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

我对位于interstitialDelegate的位置感到有点困惑。我试图实现func interstitialDidDismissScreen(ad:GADInterstitial!){}来触发更改回我的游戏场景,并且在我解散广告时没有任何反应。

我曾尝试将其放置在覆盖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

代码请..... –

+0

你好Simone Pistecchia我已添加代码 – Trlewi

+0

我认为你必须删除延迟(2.0)self.restartScene()。当广告被解雇时有一个代表,使用该功能重新启动场景 –

回答

1

您可以使用AdMob的委托方法,所以当间质将被显示,您可以删除重启按钮,或者把一个条件,这样是行不通的时候广告所示。如果使用isPaused bool运行,暂停游戏也很重要。 https://developers.google.com/admob/ios/ad-events

+0

如果这提供了答案,你可以接受这个答案。 –