2016-04-23 64 views
1

我有一個遊戲,我從表格中加載我的變量,該表格存儲爲.json文件。當用戶玩遊戲的第一次,一個表將使用默認的變量來創建,看起來像這樣:用新變量更新遊戲

GameState = {highscore = 0, musicon = true} 

此以.json文件將被創建一次,(當用戶第一次玩遊戲)。播放時,這些變量將會改變,當用戶決定退出應用程序時,這些變量將被保存到一個.json文件中。表可能會是現在這個樣子:

GameState = {highscore = 5, musicon = false} 

當用戶再次開始遊戲,這些變量將被加載,並且玩家可以繼續,因爲他從來沒有離開過遊戲。

但是,當我更新我的遊戲時,該默認表格中會包含一些新變量。例如:

v1.0 table 
GameState = {highscore = 0, musicon = true} 

v1.1 table 
GameState = {highscore = 0, musicon = true, volume = 100} 

由於與v1.0遊戲玩家有一個表,如下所示:GameState = {highscore = 0, musicon = true},他將缺少volume在遊戲更新到v1.1導致遊戲崩潰。

這是我的問題:如何在用戶更新遊戲時更新他的.json文件(表格),並在新的更新中添加新變量,同時保留舊的分數,設置等。 ?這幾天我一直在努力掙扎,我無法做到這一點。有任何想法嗎?

回答

4

使用關鍵字or初始化一個值,如果它尚不存在。 例如:

GameStat.volume = GameStat.volume or 100 

or返回它的第一個值,如果它不是falsenil,否則返回其第二值。

+0

你,先生,值得一枚勳章!非常感謝! – FICHEKK

+0

沒問題,夥計。 – user6245072