如何在Swift中无缝过渡到Interstitial iAd?

时间:2015-01-12 21:09:05

标签: swift sprite-kit iad

因此,我显示插页式广告iAd的代码有效,但加载广告的速度很慢。当用户在我的GameOver场景并且他们点击重试时,它会进行随机数检查,如果数字与我说的数字匹配,则使用NSNotificationCenter加载我的插页式广告。

 func interstitialAdChecker(){
    var randomAd = Int(arc4random() % 3)
    println(randomAd)

    if randomAd == 1 {
        NSNotificationCenter.defaultCenter().postNotificationName("showInterstitialAdsID", object: nil)
    }
}

在我的场景游戏中,当用户点击重放时,这是转换场景的代码:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

        if self.nodeAtPoint(location) == self.replayButton {
            gameOverLogo.removeFromParent()
            replayButton.removeFromParent()
            yourScore.removeFromParent()
            highScore.removeFromParent()
            rateButton.removeFromParent()
            scoreBackground.removeFromParent()

            interstitialAdChecker()

            var scene = InstructionScene(size: self.size)
            let skView = view as SKView!
            skView.ignoresSiblingOrder = true
            scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
            scene.scaleMode = .ResizeFill
            scene.size = skView.bounds.size
            skView.presentScene(scene, transition: transition)
        }
    }
}

在加载InstructionScene和显示插页式iAd之间有1到3秒的延迟,所以有人知道如何在用户点击重试时从底部AS无缝地向上滑动吗? 1到3秒的延迟意味着用户可能会启动游戏,并且在游戏中间弹出广告并不好。谢谢!

1 个答案:

答案 0 :(得分:0)

您是否正在使用模拟器或实际设备进行测试?如果您使用的是模拟器,那么根据我的体验显示广告会有延迟。

如果您在设备上进行测试,则应尝试延迟场景转换,直到用户处理了insterstitialAd。您可以为广告展示时设置一个bool,这样您就不会转换。然后,当用户取消广告时,就会发生转换。