你如何冻结插入的非页内广告iAd的场景?

时间:2015-01-13 18:42:02

标签: swift sprite-kit iad

嘿所有这些我终于得到了我的插页式iAd的工作,但我遇到了一个小问题。当用户在我的游戏中点击重播时,它会在加载InstructionScene之前立即加载我的插页式广告iAd,但是如果我点击iAd,它会加载我的GameScene。在我的InstructionScene上,你只需点击即可开始准备比赛。因此,在显示iAd时,如何暂停InstructionScene,以便当用户点击广告时,它不会触发游戏开始?

我的GameOver场景中的代码

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

    if randomAd == 1 {
        interstitialBool = true
    }
}

func interstitialAd(){
    NSNotificationCenter.defaultCenter().postNotificationName("showInterstitialAdsID", object: nil)
}

当用户点击重播时,会调用此代码:

    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)
        if self.nodeAtPoint(location) == self.replayButton {
            if interstitialBool == true {
                interstitialAd()
            }

            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中的代码

在我的InstructionScene中,我将此代码设置为将场景切换到PlayScene:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {    
    for touch: AnyObject in touches {
        var scene = PlayScene(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)
    }
}

基本上用户只需要触摸屏幕,它就会将场景切换到我的PlayScene。

1 个答案:

答案 0 :(得分:0)

您可以使用skView.paused = true暂停场景,然后使用skView.paused = false再次播放场景。

当属性设置为true时,内容是固定的,没有物理模拟。

https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKView/index.html#//apple_ref/doc/uid/TP40013031-CH1-SW8