2015-03-21 2 views
1

Что я делаю неправильно? Я пытаюсь заставить игру приостановиться, когда объявление прослушивается, но оно все еще работает в фоновом режиме. Как мне заставить его остановиться? Я пробовал другие способы приостановить сцену, но это не работает для меня.Почему моя игра не приостанавливается, когда iAd используется в Swift?

func didLoadAd(banner: ADBannerView) { 
     adBannerView.hidden = false 
    } 


    func bannerViewWillLoadAd(banner: ADBannerView!) { 


     println("Ad about to load") 

    } 

    func bannerViewDidLoadAd(banner: ADBannerView!) { 

     adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - view.bounds.size.height + adBannerView.frame.size.height/2) 

     adBannerView.hidden = false 
     println("Displaying the Ad") 

    } 

    func bannerViewActionDidFinish(banner: ADBannerView!) { 
     /* un-pause when ad is closed */ 
     if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { 
      let skView = self.view as SKView 
      skView.paused = false 
      println("Close the Ad") 
     } 

    } 

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
     if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { 
      let skView = self.view as SKView 
      skView.paused = true 
      println("Leave the application to the Ad") 
     //pause game here 
     } 

     return true 
    } 

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 

     //move off bounds when add didn't load 

     adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height + view.bounds.size.height) 
     adBannerView.hidden = true 
     println("Ad is not available") 

    } 
//iAd----------------------------------------------------------------------------------------------------- 
+0

Показывает объявление и скрывает, как вы ожидаете? – nycynik

+0

Да, это просто не приостанавливает игру, когда объявление прослушивается – newtocoding

ответ

0

Я думаю, ваша проблема здесь:

let skView = self.view as SKView 
skView.paused = true 

, и я думаю, что вы должны проверить, если skView ваш взгляд игра. self.view может быть видом рекламы в этот момент.

Чтобы исправить это, найдите свое мнение, вместо того, чтобы использовать self.

//at top of class 
var window:UIWindow? 

// inside my method/function 
if let viewControllers = window?.rootViewController?.childViewControllers { 
    for viewController in viewControllers { 
     if viewController.isKindOfClass(MyViewControllerClass) { 
      println("Found it!!!") 
      viewController.paused = true 
      } 
     } 
    } 
+0

Я не знаю, что это значит, что новое для быстрой и кодирующей. Как кэшировать представление и повторно использовать его? – newtocoding

+0

заменил его кодом, который покажет вам, как найти свое мнение. – nycynik

+0

Я получаю сообщение об ошибке на viewController.paused = true. Он говорит, что anyobject не имеет члена с именем paused. – newtocoding

Смежные вопросы