Я хочу закодировать небольшое текстовое приключение/подземелье типа гусеницы. На данный момент у меня есть классы Creature
, Player
и Enemy
. Классы Player
и Enemy
являются подклассами Creature
.Атрибуты зависимостей между двумя классами
Я хочу, чтобы уровень противника зависел от уровня игрока. Так, например, уровень противника всегда должен быть на 1 уровень выше уровня игрока. Поэтому, когда игрок уровня 4, вы должны быть только в состоянии противостоять врагам, которые находятся на одном уровне 5.
Моя идея состояла в том, чтобы положить что-то вроде этого в конструкторе Enemy
класса:
public Enemy(String name, int hp, int atk, int exp) {
super(name, Player.getLevel + 1, hp, atk);
this.exp = exp;
}
Но это явно не допускается. Теперь я понятия не имею, как достичь этого результата. Мне не хватает базового понимания Java, но я хочу учиться.
В настоящее время мой код выглядит так. Я оставил геттеры и сеттеры для лучшей читаемости.
public class Creature {
private String name;
private int level;
private int hp;
private int atk;
public Creature (String name, int level, int hp, int atk){
this.name = name;
this.level = level;
this.hp = hp;
this.atk = atk;
}
}
public class Player extends Creature {
private int currentEXP;
private int expBar;
public Player(String name) {
super(name, 1, 100, 10);
this.currentEXP = 0;
this.expBar = 50;
}
}
public class Enemy extends Creature {
int exp;
public Enemy(String name, int level, int hp, int atk, int exp) {
super(name, level, hp, atk);
this.exp = exp;
}
}
Ничего себе, этот ответ пришел быстро! Большое спасибо, я думаю, теперь понимаю, в чем была моя проблема. Сначала мне нужно создать экземпляр объекта моего игрока, который затем я могу передать конструктору класса врага. В этом есть смысл! Спасибо за быстрый ответ. :) – Apocabal