所以我正在制作增量游戏,定期炼金术,我正在尝试制作一些确保保存将所有新变量保存在另一个版本中的东西。为了保存,我使用一个变量“player”,其中包含我的所有变量,并将其转换为可以复制的Base64字符串。
然而,在几乎每个新版本中,我都会添加新变量。如果玩家使用带有新变量的新版本的旧保存,那么这些新变量将丢失并且新功能会中断。因此,当您加载游戏时,游戏会检查旧的save_data是否包含某些变量,如果未包含变量,游戏会将该变量添加到保存数据中。但是,我不知道该怎么做。这是我的“播放器”代码:
var player = {
upQuarkClicks: 0,
electronClicks: 0,
downQuarkClicks: 0,
auto_up_quark_clicks: 0,
auto_electron_clicks: 0,
auto_down_quark_clicks: 0,
auto_proton_clicks: 0,
auto_neutron_clicks: 0,
up_quark_click_cost: 15,
electron_click_cost: 15,
down_quark_click_cost: 15,
proton_click_cost: 15,
neutron_click_cost: 15,
upgrade_up_quark_1_cost: 50,
upgrade_electron_1_cost: 50,
upgrade_down_quark_1_cost: 50,
auto_up_quark_clicks_amount: 1,
auto_electron_clicks_amount: 1,
auto_down_quark_clicks_amount: 1,
auto_proton_clicks_amount: 1,
auto_neutron_clicks_amount: 1,
upgrade_up_quark_click_1_bought: "False",
upgrade_electron_click_1_bought: "False",
upgrade_down_quark_click_1_bought: "False",
proton_up_quark_cost: 2,
proton_down_quark_cost: 1,
neutron_up_quark_cost: 1,
neutron_down_quark_cost: 2,
protonClicks: 0,
neutronClicks: 0,
hydrogen2DeuteriumClicks: 0,
hydrogen1ProtiumClicks: 0,
hydrogen3TritiumClicks: 0,
helium3Clicks: 0,
helium4Clicks: 0,
lithium6Clicks: 0,
lithium7Clicks: 0
};
所以,假设我添加了一个新变量:lithium_7_bought:“false”。这个新变量不在旧的保存数据中,因此被负载擦除。如果找不到,我该如何添加?
答案 0 :(得分:3)
这样的事情应该有效:
if (!("lithium_7_bought" in player))
{
player.lithium_7_bought = "false";
}