使用新变量更新您的游戏
Updating your game with new variables
我有一个游戏,我从存储为 .json 文件的 table 加载我的变量。当用户第一次玩游戏时,将使用默认变量创建一个 table,看起来像这样:
GameState = {highscore = 0, musicon = true}
这个 .json 文件只会创建一次(当用户第一次玩游戏时)。播放时,这些变量会发生变化,当用户决定退出应用程序时,这些变量将保存到 .json 文件中。 Table 现在可能看起来像这样:
GameState = {highscore = 5, musicon = false}
当用户再次开始游戏时,这些变量将被加载并且玩家可以继续,因为他从未离开过游戏。
但是,当我更新我的游戏时,默认值 table 将包含一些新变量。示例:
v1.0 table
GameState = {highscore = 0, musicon = true}
v1.1 table
GameState = {highscore = 0, musicon = true, volume = 100}
由于玩 v1.0
游戏的玩家的 table 看起来像这样:GameState = {highscore = 0, musicon = true}
,他将在更新游戏到 [= 时丢失 volume
16=]导致游戏崩溃。
这是我的问题:我怎样才能做到,当用户更新游戏时,也用新更新中添加的新变量更新他的 .json 文件 (table)同时保留他的旧分数、设置等?我已经为此苦苦挣扎了几天,但我做不到。有什么想法吗?
如果值不存在,请使用关键字 or
初始化值。
例如:
GameStat.volume = GameStat.volume or 100
or
returns 如果它不是 false
或 nil
它的第一个值,否则它 returns 它的第二个值。
我有一个游戏,我从存储为 .json 文件的 table 加载我的变量。当用户第一次玩游戏时,将使用默认变量创建一个 table,看起来像这样:
GameState = {highscore = 0, musicon = true}
这个 .json 文件只会创建一次(当用户第一次玩游戏时)。播放时,这些变量会发生变化,当用户决定退出应用程序时,这些变量将保存到 .json 文件中。 Table 现在可能看起来像这样:
GameState = {highscore = 5, musicon = false}
当用户再次开始游戏时,这些变量将被加载并且玩家可以继续,因为他从未离开过游戏。
但是,当我更新我的游戏时,默认值 table 将包含一些新变量。示例:
v1.0 table
GameState = {highscore = 0, musicon = true}
v1.1 table
GameState = {highscore = 0, musicon = true, volume = 100}
由于玩 v1.0
游戏的玩家的 table 看起来像这样:GameState = {highscore = 0, musicon = true}
,他将在更新游戏到 [= 时丢失 volume
16=]导致游戏崩溃。
这是我的问题:我怎样才能做到,当用户更新游戏时,也用新更新中添加的新变量更新他的 .json 文件 (table)同时保留他的旧分数、设置等?我已经为此苦苦挣扎了几天,但我做不到。有什么想法吗?
如果值不存在,请使用关键字 or
初始化值。
例如:
GameStat.volume = GameStat.volume or 100
or
returns 如果它不是 false
或 nil
它的第一个值,否则它 returns 它的第二个值。