2015-12-21 12 views
1

因此,我發現了兩種在我的SpriteKit遊戲中顯示Google廣告的方式......這兩種方式都可以工作,但我擔心其中一種方式更高效。在SpriteKit/Swift中顯示GADBannerView的最佳方式

我的遊戲只有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

我做出了正確的決定,然後改變了aha。感謝您的確認。 – Reanimation

+0

你也可以使用一個幫手,比如我放在github上的幫手。在viewController中放置所有的廣告代碼也很麻煩。 https://github.com/crashoverride777/Swift-2-iAds-and-AdMob-Helper – crashoverride777

+0

你結合了iAD和admob嗎?你可以通過admob來完成iAd – Knight0fDragon

相關問題