Javascript 战斗转弯系统
我会尽量说清楚,但我可能会错过信息。如果您需要更多信息来回答,请随时提问 我的战斗是一个函数,每当我点击一个特定的按钮,它就会被调用 以下是日志:Javascript 战斗转弯系统,javascript,Javascript,我会尽量说清楚,但我可能会错过信息。如果您需要更多信息来回答,请随时提问 我的战斗是一个函数,每当我点击一个特定的按钮,它就会被调用 以下是日志: var clochardInitiative = 9; var Initiative = 10; var fightClochard = function() { if (clochardInitiative>Initiative) { HPNow-=(clochardDmg-Armor); c
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 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();
}
}
你的代码有太多错误。基本上,您的代码应该如下所示:
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的指南和文档,例如,…我没有看到任何关于玩家是否还活着的测试。无论如何,我强烈建议玩家之间不要有区别,在名字前面加上前缀,而是创建不同的对象:例如player.initiative和clochard.initiative。特别是不同的命名,比如HPNow,clochardLifeNow,它显然代表相同的东西,应该有相同的命名。他们似乎在做同样的事情。更改订单并不是在做你认为它在做的事情。谢谢。我开始清理我的代码,我将遵循您的建议:-