如何设置一个计算场景间转换的计数器?我希望每三个游戏结束一次广告。当玩家失败时,游戏将从PlayScene转换为GameOverScene。在GameOverScene开始时,我想展示一个非页内广告。我对广告本身没有任何麻烦,只是计算场景。
这就是我目前正在尝试的内容: 在PlayScene中:
var adcounter = 0
func gameOver() {
adcounter++
NSUserDefaults.standardUserDefaults().setInteger(adcounter, forKey: "overAd")
在GameOverScene的didMoveToView:
var counterAd : Int = NSUserDefaults.standardUserDefaults().integerForKey("overAd")
println("ad status \(counterAd)")
总是打印1
过渡: PlayScene: 当物体相互碰撞时 -
func gameOver() {
println("TOTAL GAMEOVER")
adcounter++
NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "overScore")
NSUserDefaults.standardUserDefaults().setInteger(adcounter, forKey: "overAd")
var scene = GameOverScene(size: self.size)
var transition:SKTransition = SKTransition.crossFadeWithDuration(0.5)
let skView = self.view as SKView!
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
skView.presentScene(scene, transition: transition)
}
GameOverScene:点击"重试" -
func reset() {
var scene = PlayScene(size: self.size)
var transition:SKTransition = SKTransition.crossFadeWithDuration(0.5)
let skView = self.view as SKView!
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
skView.presentScene(scene, transition: transition)
}
答案 0 :(得分:1)
再多一步,你会得到你想要的东西。
首先,在 GameViewController 的overAd
中初始化viewDidLoad
对象:
NSUserDefaults.standardUserDefaults().setInteger(0, forKey: "overAd")
修改 PlayScene 中的gameOver
方法,如下所示:
func gameOver() {
var adcounter = NSUserDefaults.standardUserDefaults().integerForKey("overAd")
adcounter++
NSUserDefaults.standardUserDefaults().setInteger(adcounter, forKey: "overAd")
}
然后,在转换到 GameOverScene 并获取保存在密钥overAd
的对象中的内容后,您会发现它现在会递增,直到您重置它为止。