我用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而不是像这样做,我很乐意切换我的代码。有什么想法吗?
答案 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的人来说,有很多非常好的视频需要学习。