2017-03-04 65 views
1

這是我第一次使用swift和sprite-kit開發應用程序。我想將adMob集成到其中。我一直在尋找解決方案來解決我的問題,但我一直沒有成功。如何在精靈套件中的某些場景中呈現廣告?

我有以下代碼設置裏面GameViewController.swift

override func viewDidLoad() { 
    super.viewDidLoad() 

    bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) 
    bannerView.isHidden = true 
    bannerView.adUnitID = "ca-app-pub-************************" 
    bannerView.rootViewController = self 
    view.addSubview(bannerView) 

    // Configure the view. 
    let skView = self.view as! SKView 
    skView.showsFPS = false 
    skView.showsNodeCount = false 

    /* Sprite Kit applies additional optimizations to improve rendering performance */ 
    skView.ignoresSiblingOrder = true 

    // Create and configure the scene. 
    let aspectRatio = skView.bounds.size.height/skView.bounds.size.width 
    let scene = MainMenuScene(size:CGSize(width: 320, height: 320 * aspectRatio)) 
    skView.presentScene(scene) 

    showBanner() 

} 

func showBanner() { 
    bannerView.isHidden = false 
    let request = GADRequest() 
    request.testDevices = ["******************"] 
    bannerView.load(request) 

} 

此設置顯示在我所有的場景完美的廣告,但我的問題是,如何將能夠使它顯示在MainMenuScene.swiftGameOverScene.swift通過使用NotificationCenter?這兩個都是他們自己的班級。

+0

什麼是MenuScene.swift? –

+0

@ElTomato這是一堂課。看起來像這樣,類MainMenuScene:SKScene {} – sicvayne

+0

我不知道MainMenuScene廣告MenuScene之間的關係,但如果他們是兄弟姐妹,您可能需要創建一個SKScene基類,以便您可以爲它們創建子類一個用於顯示或不顯示廣告的布爾開關。 –

回答

1

正如您所提到的,您可以使用通知中心。

爲您的通知創建一個密鑰以避免輸入錯誤。你可以把這個任何地方,你在你的項目中喜歡

extension Notification.Name { 
    static let showBannerAd = Notification.Name(rawValue: "ShowBanner") 
} 

比你們GameViewController(任何類或新.swift文件之外)添加觀察員viewDidLoad中

NotificationCenter.default.addObserver(self, selector: #selector(showBanner), name: .showBannerAd, object: nil) // selector is the method to call 

,並在您SKScene(S )當您需要顯示橫幅時,您可以像這樣發佈通知。

NotificationCenter.default.postNotificationName(.showBannerAd, object: nil) 

或者我在Github上有一個幫手,這將使這更容易和更清潔。

https://github.com/crashoverride777/SwiftyAds

希望這有助於

+0

感謝您的回覆,但我已經知道了。我實際上做了類似的事情,它的作用就像一個魅力。我會繼續,並留下這個問題與這個答案,以防其他人有同樣的問題。 – sicvayne

+0

太棒了。感謝您的製作。快樂的編碼 – crashoverride777