我在GameViewController中声明了一个插页式广告,并希望每次游戏结束时都会调用它。我按照一个教程,我会通过按钮调用广告,但我需要从GameScene打电话,但我不知道如何跨班级打电话。我可以在所有类之间使用全局变量吗? 基本上我想在GameScene中调用func adButton(),或者可能有更好的解决方法。
此外,有没有办法实施奖励广告,或者有没有人有这样的好教程?
非常感谢。
func createAndLoadInterstitial() -> GADInterstitial {
let interstitial = GADInterstitial(adUnitID: " unit id ")
let request1 = GADRequest()
interstitial.delegate = self
request1.testDevices = [ kGADSimulatorID, "2077ef9a63d2b398840261c8221a0c9b" ]
interstitial.loadRequest(request1)
return interstitial
}
func adButton() {
if (self.interstitial.isReady)
{
self.interstitial.presentFromRootViewController(self)
self.interstitial = self.createAndLoadInterstitial()
}
}
答案 0 :(得分:2)
使用notifictionCenter调用功能
在viewDidLoad()中添加第一个函数,在adButton()中添加第二个函数
在Swift 3中
//In the gameviewcontroller
NotificationCenter.default.addObserver(self, selector: #selector(YourFunctionNameHere), name: "NSNotificationCreate" as NSNotification.Name, object: nil)
//In the gameScene use this to call the ad
NotificationCenter.default.post(name: "NSNotificationCreate" as NSNotification.Name, object: nil)
在Swift 2中
//In the gameviewcontroller
NSNotificationCenter.defaultCenter().addObserver(self, selector: "YourFunctionNameHere", name: "NSNotificationCreate", object: nil)
//In the gameScene use this to call the ad
NSNotificationCenter.defaultCenter().postNotificationName("NSNotificationCreate", object: nil)