Javascript战斗回合系统

Javascript combat turn system

本文关键字:系统 Javascript      更新时间:2024-03-18

我会尽量清楚,但可能会错过信息。如果你需要更多的信息来回答,请随时询问。

我的战斗是一个每当我点击特定按钮时就会调用的功能

以下是日志:

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();
    }   
}

我希望拥有更高主动价值的战斗机首先攻击。如果他杀了对手。那么对手就不能进攻了。

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

谢谢:)

您的代码有太多错误。基本上你的代码应该是这样的:

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();
   }  
};    

但我强烈建议您在继续之前查看一下"面向对象的Javascript"的指南和文档,例如在这里。

首先,在这两种方法中,您都在减少双方的生命!实际上,这意味着你要付出生命的代价。

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();
    }   
}