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 秒,然后 运行 更改场景功能。退出广告后,场景现在发生了变化。
以下是点击重启按钮时运行的代码。游戏重置比分,播放插播广告,然后回到游戏场景。
现在是不等插播退出再切换游戏场景。
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 秒,然后 运行 更改场景功能。退出广告后,场景现在发生了变化。