我有一个游戏,我从表中加载我的变量,存储为.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文件(表格),在新更新中添加新变量,同时保留他的旧分数,设置等?我已经在这几天苦苦挣扎,我不能这样做。有什么想法吗?
答案 0 :(得分:4)
如果值已经存在,请使用关键字or
初始化值。
例如:
GameStat.volume = GameStat.volume or 100
or
如果不是false
或nil
则返回其第一个值,否则返回其第二个值。