我会尽量清楚,但我可能会错过信息。如果您需要更多信息,请随时提出。
我的战斗是每次点击特定按钮时都会调用的功能
以下是日志:
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();
}
}
我希望首先具有较高价值的主动攻击的战斗机。如果他杀了就是对手。然后对手无法攻击。
现在这个代码都在攻击,即使其中一个人刚刚去世。
谢谢:)
答案 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();
}
}