Swift 如何在sprite kit的特定场景中展示广告?
这是我第一次使用swift和sprite工具包开发应用程序。我想将adMob整合到其中。我一直在寻找解决问题的办法,但没有成功 我在GameViewController.swift中设置了以下代码Swift 如何在sprite kit的特定场景中展示广告?,swift,sprite-kit,admob,Swift,Sprite Kit,Admob,这是我第一次使用swift和sprite工具包开发应用程序。我想将adMob整合到其中。我一直在寻找解决问题的办法,但没有成功 我在GameViewController.swift中设置了以下代码 override func viewDidLoad() { super.viewDidLoad() bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) bannerView.isHidden =
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.swift
和GameOverScene.swift
上显示广告?这两个都是他们自己的班级 如您所述,您可以使用通知中心
为通知创建一个密钥以避免输入错误。您可以将其放在项目中任何您喜欢的地方(任何类或新的.swift文件之外)
而不是在游戏ViewController中在ViewDidLoad中添加观察者
NotificationCenter.default.addObserver(self, selector: #selector(showBanner), name: .showBannerAd, object: nil) // selector is the method to call
在你的场景中,当你需要显示横幅时,你可以像这样发布通知
NotificationCenter.default.postNotificationName(.showBannerAd, object: nil)
或者,我在Github上有一个助手,这将使这更容易和更干净
希望这有帮助什么是MenuScene.swift?@ElTomato这是一门课。看起来是这样的,类MainMenuScene:SKScene{}我不知道MainMenuScene和MenuScene之间的关系,但是如果他们是兄弟姐妹,你可能想创建一个基本的SKScene类,这样你就可以用bool开关为他们对其进行子类化,以显示或不显示广告。@ElTomato我为混淆道歉,它完全从我身边溜走了!我本来想把MainMenuScene.swift改为MainMenuScene.swift,所以我已经编辑了这个问题。没问题。。。只需创建一个基本场景类。然后为MainMenuScene、GameOverScene创建子类。谢谢你的回复,但我已经找到了答案。事实上我做了类似的事情,效果很好。我会继续,留下这个问题和这个答案,以防其他人也有同样的问题。太棒了。谢谢你的帮助。快乐编码
NotificationCenter.default.postNotificationName(.showBannerAd, object: nil)