//修改
我希望在切换状态和后退状态后保存健康,硬币,有趣的值。
我创建了游戏对象/数组:
game.yourGameData = {};
game.yourGameData.health = 100;
game.yourGameData.coin = 100;
game.yourGameData.fun = 100;
接下来我将params的值定义为:
//设置健康
var health, fun, coin;
health = this.game.yourGameData.health;
fun = this.game.yourGameData.fun;
coin = this.game.yourGameData.coin;
//custom properties of the pet
this.pet.customParams = {health, fun, coin};
价值显示没有错误。 现在我通过功能打开子游戏:
showtry: function()
{
this.game.state.start('brick_destro_game');
},
当我完成子游戏并切换回主状态时,健康值为100。
切换回状态功能:
clickOnActionExit: function()
{
this.game.state.start('GameState');
},
我想看到的: 宠物盯着100健康,接下来他什么都不吃。健康状况下降到70岁。 我将状态切换到子游戏并播放。我完成比赛并回到主要状态。 宠物应该健康,但重置为100。
答案 0 :(得分:1)
就像你提到的那样,你可以保持数据带外(全局)或我喜欢使用的方法,我认为比全局变量更好的是将新对象附加到'游戏'以保存数据。这将随着游戏的到来而持续存在。
例如
this.game.yourGameData = {};
this.game.yourGameData.health = 70;
this.game.yourGameData.cons = 100;
答案 1 :(得分:1)
我认为你的问题是每次执行create function时状态都会重置这些值,你应该实现以下内容:
var state = {
create: function () {
if (!game.pet) {
var health, fun, coin;
health = this.game.yourGameData.health;
fun = this.game.yourGameData.fun;
coin = this.game.yourGameData.coin;
//custom properties of the pet
game.pet={customParams : {health, fun, coin}};
}
},
update: {...}
}
确保在宠物死亡时删除属性game.pet"为了在重新开始时重置值。