использование локальной переменной!?
есть задача сделать функцию, которая будет фиксировать "Здоровье-HP" в игре-файтинге.
вроде выходит(вложение) - но припустим "HP"=65, и потом должно каждый раз при вызове функции уменьшаться...оно не уменьшается а становится this.hp=fighter.getHealth() (припустим 90). (естественно потому что я так прописал в коде), но КАК СДЕЛАТЬ ЧТОБЫ ПЕРЕМЕННАЯ this.hp уменьшалась каждый раз с последнего значения, а не с fighter.getHealth() - но первый раз должно браться с fighter.getHealth() то есть, каждый раз когда я вызываю console.log(attack(myFighter2)) число жизней должно или уменьшаться или оставаться прежним. если можно без особого спама и нравоучений-только учусь и нуждаюсь в небольшой подсказке. function Fighter(name, damage, strenght, agility, hp) { this.name = name; this.damage = damage; this.strength = strenght; this.agility = agility; this.hp = hp; this.getName=function() { return this.name; } this.getDamage=function() { return this.damage; } this.getStrenght=function() { return this.strength; } this.getAgility=function() { return this.agility; } this.getHealth=function() { return this.hp; } } const myFighter1 = new Fighter('Maximus',25,1,1,100); let name1 = myFighter1.getName(); let damage1 = myFighter1.getDamage(); let strenght1 = myFighter1.getStrenght(); let agility1 = myFighter1.getAgility(); let health1 = myFighter1.getHealth(); const myFighter2 = new Fighter('Commod',25,25,25,90); let name2 = myFighter2.getName(); let damage2 = myFighter2.getDamage(); let strenght2 = myFighter2.getStrenght(); let agility2 = myFighter2.getAgility(); let health2 = myFighter2.getHealth(); //console.log(name2) function getRandomInt(max) { return Math.floor(Math.random() * Math.floor(max)); } function attack(fighter) { let hp=fighter.getHealth(); let damage=fighter.getDamage(); let success = 100-(fighter.getAgility()+fighter.getStrenght()); let rand_number = getRandomInt(101); if (rand_number < success) { hp=hp-damage; return hp } else { hp=hp-0; return hp } } console.log(attack(myFighter2)); console.log(attack(myFighter2)); console.log(attack(myFighter2)); |
alexander909090,
либо attack переносите в Fighter, либо в attack используйте fighter.hp вместо let hp=fighter.getHealth(); |
alexander909090,
function Fighter(name, damage, strenght, agility, hp) { this.name = name; this.damage = damage; this.strength = strenght; this.agility = agility; this.hp = hp; this.getName=function() { return this.name; } this.getDamage=function() { return this.damage; } this.getStrenght=function() { return this.strength; } this.getAgility=function() { return this.agility; } this.getHealth=function() { return this.hp; } } const myFighter1 = new Fighter('Maximus',25,1,1,100); let name1 = myFighter1.getName(); let damage1 = myFighter1.getDamage(); let strenght1 = myFighter1.getStrenght(); let agility1 = myFighter1.getAgility(); let health1 = myFighter1.getHealth(); const myFighter2 = new Fighter('Commod',25,25,25,90); let name2 = myFighter2.getName(); let damage2 = myFighter2.getDamage(); let strenght2 = myFighter2.getStrenght(); let agility2 = myFighter2.getAgility(); let health2 = myFighter2.getHealth(); //console.log(name2) function getRandomInt(max) { return Math.floor(Math.random() * Math.floor(max)); } function attack(fighter) { let hp=fighter.getHealth(); let damage=fighter.getDamage(); let success = 100-(fighter.getAgility()+fighter.getStrenght()); let rand_number = getRandomInt(101); if (rand_number < success) { hp=hp-damage; } else { hp=hp-0; }; fighter.hp = hp; return hp } console.log(attack(myFighter2)); console.log(attack(myFighter2)); console.log(attack(myFighter2)); |
Часовой пояс GMT +3, время: 13:54. |