使用新变量更新游戏

时间:2016-04-23 15:52:35

标签: lua corona

我有一个游戏,我从表中加载我的变量,存储为.json文件。当用户第一次玩游戏时,将使用默认变量创建一个表,如下所示:

GameState = {highscore = 0, musicon = true}

此.json文件将仅在ONCE(用户首次玩游戏时)创建。在播放时,这些变量将发生变化,当用户决定退出应用程序时,这些变量将保存到.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文件(表格),在新更新中添加新变量,同时保留他的旧分数,设置等?我已经在这几天苦苦挣扎,我不能这样做。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

如果值已经存在,请使用关键字or初始化值。 例如:

GameStat.volume = GameStat.volume or 100

or如果不是falsenil则返回其第一个值,否则返回其第二个值。