Прошу прощения, если название сбивает с толку. Я очень плохо знаком с Java-кодированием и только что закончил курс по кодированию, который я получил в моей школе.
Я пытаюсь создать небольшую текстовую приключенческую игру на Java с помощью программы под названием codehs. В игре есть игрок, имеющий класс для своей статистики. В игре также есть монстры, у которых есть отдельный класс, основанный на их индивидуальных характеристиках. Каждый монстр создается случайным образом за столкновение и порождается из пула монстров, которые масштабируются с уровнем игрока.
Моя проблема возникает, когда я начинаю бой между игроком и монстром. В настоящее время я начинаю бой с помощью метода, называемого «бой с монстром», где метод вводит уровень игроков и их здоровье в переменную, называемую HP (отдельно от класса статистики). Проблема в том, что после боя мой игрок, очевидно, потерял часть HP в бою, но поскольку переменная HP изменяется внутри метода, после боя он возвращается к полному HP по умолчанию, когда я пытаюсь отобразить текущее HP , Есть ли способ, которым я могу отображать HP игрока после боя в области бега?
Я прошу прощения за длинную формулировку и, вероятно, ужасное понимание Java, но я был бы признателен за любую помощь, пытаясь сделать эту работу.
Редактировать: вот код
То, что я называю в области бега:
monsterFight (player.getLevel (), player.getHP ());
Метод борьбы с монстрами:
public void monsterFight (int level, int HP)
{
int whatMonster = Randomizer.nextInt(1,3);
Monster monster = null;
if(whatMonster == 1)
{
monster = new Monster("Gremlin", level, 1500);
}
if(whatMonster == 2)
{
monster = new Monster("Troll", level, 3000);
}
if(whatMonster == 3)
{
monster = new Monster("Brute", level, 4000);
}
Monster.getHP();
System.out.println(monster);
int enemHP = Monster.getHP();
while (HP > 0 && enemHP > 0)
{
System.out.println("");
String fbfAttack = readLine("How will you attack? Choose lightning or fireball: ");
if (fbfAttack.equals("lightning"))
{
System.out.println("Your lightning blasts the ");
int damage = Randomizer.nextInt(400,500);
enemHP = enemHP - damage;
}
if (fbfAttack.equals("fireball"))
{
System.out.println("Your fire burns the " + monster.getName());
int damage = Randomizer.nextInt(700,1000);
enemHP = enemHP - damage;
}
if (enemHP <= 0)
{
break;
}
System.out.println("The " + monster.getName() + " is at: " + enemHP + "HP");
int enemAttack = Randomizer.nextInt(200,300);
HP = HP - enemAttack;
System.out.println("The " + monster.getName() + " attacks! Your HP: " + (HP));
}
if (HP < 0)
{
System.out.println("Game over, you died");
System.exit(0);
}
System.out.println("HP in fight method " + HP);
newHP(HP);
}
public int newHP(int HP)
{
return HP;
}
}