Javascript战斗转弯系统

时间:2015-02-23 14:28:11

标签: javascript

我会尽量清楚,但我可能会错过信息。如果您需要更多信息,请随时提出。

我的战斗是每次点击特定按钮时都会调用的功能

以下是日志:

var clochardInitiative = 9;
var Initiative = 10;

var fightClochard = function()
{
    if (clochardInitiative>Initiative)
    {
        HPNow-=(clochardDmg-Armor);
        clochardLifeNow -= (Dmg-clochardArmor);
        updateStats();
    }

    else if (Initiative>=clochardInitiative)
    {
        clochardLifeNow -= (Dmg-clochardArmor);
        HPNow-=(clochardDmg-Armor)
        updateStats();
    }   
}

我希望首先具有较高价值的主动攻击的战斗机。如果他杀了就是对手。然后对手无法攻击。

现在这个代码都在攻击,即使其中一个人刚刚去世。

谢谢:)

2 个答案:

答案 0 :(得分:1)

你的代码太多了。基本上你的代码应该是这样的:

var Fighter = function (life, armor, initiative, dmg) {
  this.life = life;
  this.armor = armor;
  this.initiative = initiative;
  this.dmg = dmg;
};

Fighter.prototype.fight = function(opponent) {
  if (opponent.initiative>this.initiative)
  {
      this.life-=(opponent.dmg-this.armor);
      if(this.life<=0) {
         updateStats();
         return; // <- ANSWER TO YOUR QUESTION
      }
      opponent.life-=(this.dmg-opponent.armor);
      updateStats();
   }
   else if (this.initiative>=opponent.initiative)
   {
     opponent.life-=(this.dmg-opponent.armor);
     if(opponent.life<=0) {
         updateStats();
         return; // <- ANSWER TO YOUR QUESTION
     }
     this.life-=(opponent.dmg-this.armor);
     updateStats();
   }  
};    

但我强烈建议您查看有关&#34;面向对象的Javascript&#34;的指南和文档。在继续之前,例如here

答案 1 :(得分:-1)

首先,在这两种方法中,你都会减少双方的生命!有效地说,这意味着它会让你的生命付出代价。

var fightClochard = function()
{
    if (clochardInitiative>Initiative)
    {
        HPNow-=(clochardDmg-Armor);
        //clochardLifeNow -= (Dmg-clochardArmor); <-- commented out because the clochard has hit 
        updateStats();
    }

    else if (Initiative>=clochardInitiative)
    {
        clochardLifeNow -= (Dmg-clochardArmor);
        //HPNow-=(clochardDmg-Armor) <-- commented out because player has hit the clochard.
        updateStats();
    }   
}