在SpriteKit中的场景之间传递数据

时间:2017-09-09 14:47:49

标签: sprite-kit nsuserdefaults skscene

我用Google搜索了大约十分钟,其他人的建议对我不起作用。我只是想把我的游戏得分从GameScene传递给GameOver。我没有使用NSUserDefaults,但我愿意接受它的建议。

我在didMove方法之上创建了得分变量。

var meteorScore = 0

并按

过渡场景
let reveal = SKTransition.reveal(with: .down, duration: 1)
let gameOver = GameOver(size: self.size)
self.view?.presentScene(gameOver, transition: reveal)

我正试图像这样访问它

var score = GameScene(GameScene.level)
在GameOver中

,但我收到了一些错误。如果有办法用NSUserDefaults而不是像这样做,我很乐意切换我的代码。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

为什么不反过来尝试呢?

在GameOver中创建meteorScore变量

var meteorScore = 0

然后转换到该场景时将变量传递给场景

let reveal = SKTransition.reveal(with: .down, duration: 1)
let gameOver = GameOver(size: self.size)
gameOver.meteorScore = whateverScoreVariable
self.view?.presentScene(gameOver, transition: reveal)

这应该完全符合您的要求

答案 1 :(得分:0)

我用UserDefaults想出来了。对于那些刚开始使用UserDefaults的人来说,有很多非常好的视频需要学习。