改变状态后保存健康,有趣,硬币

时间:2016-06-21 10:54:13

标签: javascript android phaser-framework

//修改

我希望在切换状态和后退状态后保存健康,硬币,有趣的值。

我创建了游戏对象/数组:

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。

All project code here

game

2 个答案:

答案 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"为了在重新开始时重置值。