【问题标题】:Change Scenes after Interstitial (SpriteKit)插页式后更改场景 (SpriteKit)
【发布时间】:2017-05-13 02:31:05
【问题描述】:

这是点击重启按钮时运行的代码。游戏重置分数、播放和插播广告,然后返回游戏场景。

现在它不会等到插页式广告退出后才更改游戏场景。

  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)

        }

【问题讨论】:

  • 我尝试了interstitialDidDismissScreen(ad: GADInterstitial),但没有成功。虽然我不确定我是否把正确的东西放在括号之间。
  • 您所描述的是您的代码当前执行的操作。因此,您可以做的是在广告完成/​​退出时通知现场。为此,您可以发布通知并添加一个场景作为该通知的观察者(并相应地运行相应的代码)。
  • 你有教程链接,你可以指点我吗?
  • 这是我目前用来调用我的广告func displayAd() { NotificationCenter.default.post(name: NSNotification.Name(rawValue: "loadAndShow"), object: nil) }的通知

标签: ios swift sprite-kit interstitial


【解决方案1】:

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

 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 秒,然后运行更改场景功能。当广告退出时,场景现在改变了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多