作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个使用插页式广告的应用程序。具体来说,它是一个用 Swift 编写的 SpriteKit 游戏。
我有代码设置,当用户在游戏结束场景中按下重播按钮时,会出现一个广告,然后它会变回游戏场景以重播游戏。现在我遇到的问题是,在显示插页式广告时场景会发生变化,有时这种情况发生的速度不够快,用户可以再次点击重启按钮,从而导致游戏崩溃。
有没有办法在调用广告时卡住屏幕并忽略任何点击?并且只在广告关闭后才改变场景?
重启按钮按下时的代码;
if restartButton.contains(pointOfTouch) {
score = 0
ballMovementSpeed = 2
displayAd()
delay(2.0) {
self.restartScene()
}
对于 interstitialDelegate 的放置位置,我有点困惑。我正在尝试实现 func interstitialDidDismissScreen(ad: GADInterstitial!) {} 以触发更改回我的游戏场景,但当我关闭广告时没有任何反应。
我已经尝试将它放在 override func didMove(to view: 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)
}
}
最佳答案
您可以使用 admob 的委托(delegate)方法,这样当要显示插页式广告时,您可以删除重新启动按钮或设置条件,以便在显示广告时它不起作用。如果使用 isPaused bool 运行游戏,暂停游戏也很重要。 https://developers.google.com/admob/ios/ad-events
关于ios - 如何在 Interstitial 被解散之前释放场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44287559/
我是一名优秀的程序员,十分优秀!