如何在sprite-kit中的某些场景中展示广告?

时间:2017-03-04 08:01:18

标签: swift sprite-kit admob

这是我第一次使用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)

}

此设置完全在我的所有场景中显示广告,但我的问题是,如何使用NotificationCenter在MainMenuScene.swiftGameOverScene.swift上展示广告?这两个都是他们自己的班级。

1 个答案:

答案 0 :(得分:1)

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

为通知创建密钥以避免拼写错误。您可以将它放在项目中的任何位置(任何类或新的.swift文件之外)

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

比在GameViewController中添加ViewDidLoad中的观察者

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

在您的SKScene中,您可以在需要显示横幅时发布通知。

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

或者我在Github上有一个帮手,这将使这更容易和更清洁。

https://github.com/crashoverride777/SwiftyAds

希望这有帮助