因此,我显示插页式广告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秒的延迟意味着用户可能会启动游戏,并且在游戏中间弹出广告并不好。谢谢!
答案 0 :(得分:0)
您是否正在使用模拟器或实际设备进行测试?如果您使用的是模拟器,那么根据我的体验显示广告会有延迟。
如果您在设备上进行测试,则应尝试延迟场景转换,直到用户处理了insterstitialAd。您可以为广告展示时设置一个bool,这样您就不会转换。然后,当用户取消广告时,就会发生转换。