Interstitial 后更改场景 (SpriteKit)

Change Scenes after Interstitial (SpriteKit)

以下是点击重启按钮时运行的代码。游戏重置比分,播放插播广告,然后回到游戏场景。

现在是不等插播退出再切换游戏场景。

  if restartButton.contains(pointOfTouch) {

            score = 0

            displayAd()



            let sceneToMoveTo = GameScene(size: self.size)
            sceneToMoveTo.scaleMode = self.scaleMode
            let myTransition = SKTransition.fade(withDuration: 0.5)
            self.view!.presentScene(sceneToMoveTo, transition: myTransition)

        }

所以我能够做的是包括一个等待功能,这样广告甚至在场景转换之前就显示在屏幕上。

 func delay(_ delay:Double, closure:@escaping ()->()) {
         let when = DispatchTime.now() + delay
         DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
 }

然后像这样在延迟函数中放置场景变换器

 delay(2.0) {
    self.changeScene()
 }

2.0 是以秒为单位的时间,所以这表示代码将等待 2 秒,然后 运行 更改场景功能。退出广告后,场景现在发生了变化。