2017-09-09 54 views
0

我已經谷歌搜索了大約10分鐘,其他人的建議都不適合我。我只是試圖將我的比賽的比分從GameScene傳遞給GameOver。我沒有使用NSUserDefaults,但我開放給它的建議。在SpriteKit中的場景之間傳遞數據

我在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

你爲什麼不以相反的方式嘗試。

在GAMEOVER

var meteorScore = 0 

然後創建meteorScore變量轉換到現場的時候,變量傳遞給現場

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

這應該做的正是你要尋找的

+0

我得到一個錯誤,說:類型'GameOver'沒有成員'meteorScore' –

+0

你在GameOver中添加變量var meteorScore = 0嗎? –

+0

@RonMyschuck,是的 –

0

我用UserDefaults來解決它。對於那些剛開始使用UserDefaults的人來說,有很多非常好的視頻可供學習。