Показать сообщение отдельно
  #1 (permalink)  
Старый 09.05.2020, 02:25
Новичок на форуме
Отправить личное сообщение для alexander909090 Посмотреть профиль Найти все сообщения от alexander909090
 
Регистрация: 09.05.2020
Сообщений: 2

использование локальной переменной!?
есть задача сделать функцию, которая будет фиксировать "Здоровье-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, 09.05.2020 в 05:27.
Ответить с цитированием