2015-12-21 4 views
1

Итак, я нашел два способа отображения рекламы Google в моей игре SpriteKit ... Оба способа работают, но я обеспокоен тем, что один из них более эффективен и т. Д.Лучший способ отображения GADBannerView в SpriteKit/Swift

В моей игре есть только 1 ViewController и 1 GameScene. Отличие от двух реализаций заключается в том, когда и где они созданы.

Оба требуют:

import GoogleMobileAds 
var googleBannerView: GADBannerView! 

Это было так, как я реализовал его первый:

в: GameViewController.swift

override func viewWillLayoutSubviews() {  
    super.viewWillLayoutSubviews() 

    googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) 
    googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" 

    googleBannerView.rootViewController = self 
    let request: GADRequest = GADRequest() 
    googleBannerView.loadRequest(request) 

    googleBannerView.frame = CGRectMake(0, view.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height) 

    self.view.addSubview(googleBannerView!) 


    if let skView = self.view as? SKView { //cast root as SKView 
     if skView.scene == nil { 
      //create and present gameScene 
     } 
    } 
} 

Это второй способ:

в : GameScene.swift

override func didMoveToView(view: SKView) { 

    googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) 
    googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" 

    googleBannerView.rootViewController = self.view?.window?.rootViewController 
    let request: GADRequest = GADRequest() 
    googleBannerView.loadRequest(request) 

    googleBannerView.frame = CGRectMake(0, view.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height) 

    self.view?.addSubview(googleBannerView!) 

    addChild(worldNode) //make whole world a node, create game nodes, in worldNode 
    switchToMainMenu() //go to menu menu 
} 

Я думаю, что единственное различие в том, как установить rootViewController, и учитывая мою игру только имеет 1 ViewController, оба работают ...

Какой бы лучше реализация?

ответ

1

Вы должны обязательно делать это с помощью контроллера вида. Это имеет большее значение с точки зрения дизайна. Работа GameScene заключается в том, чтобы беспокоиться только о содержании игры. Задача диспетчера представлений состоит в том, чтобы управлять и контролировать представления (отсюда и название «Контроллер просмотра».)

+0

Я принял правильное решение для изменения, затем ах. Спасибо, что подтвердили. – Reanimation

+0

вы также можете использовать помощник, такой как тот, который я надел github. Наличие всего кода объявления в viewController также довольно беспорядочно. https://github.com/crashoverride777/Swift-2-iAds-and-AdMob-Helper – crashoverride777

+0

Вы комбинируете iAD и admob? вы можете сделать iAd прямо через admob – Knight0fDragon

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