我已将Admob奖励视频广告投放到我的应用中。
广告的代码位于视图控制器中,并在场景游戏中触发。
但是,当我在视频播放完毕后奖励用户时,我想对我的SKScene中的变量执行操作。
这是视图控制器中用于奖励用户的代码:
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) {
if let scene3 = GameOverMenu(fileNamed: "Gameover") {
let oldCoin = UserDefaults.standard.integer(forKey: "COINSCORE")
let newCoin = oldCoin + 20
UserDefaults.standard.set(newCoin, forKey: "COINSCORE")
UserDefaults.standard.synchronize()
scene3.coinLabel.removeFromParent()
scene3.createCoinScore()
}
}
用户默认值确实会发生变化,但coinLabel不会删除也不会创建createCoinScore触发器。
var scene3: GameOverMenu!
答案 0 :(得分:0)
这为我修好了!
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) {
if let view = self.view as! SKView? {
if let scene3 = GameOverMenu(fileNamed: "Gameover") {
scene3.viewController = self
scene3.scaleMode = .aspectFill
view.presentScene(scene3)
let oldCoin = UserDefaults.standard.integer(forKey: "COINSCORE")
let newCoin = oldCoin + 20
UserDefaults.standard.set(newCoin, forKey: "COINSCORE")
UserDefaults.standard.synchronize()
scene3.coinLabel.removeFromParent()
scene3.createCoinScore()
}
}
}