Для проекта я пишу базовую RPG и наткнулся на проблему, которую не могу исправить. У меня нет опыта работы с Java, так что это моя учебная площадка.
Для моего игрока я хочу сделать инвентарь, предположительно, двумерный массив и массив оборудования (одномерный, 8 значений). У меня есть конструкторы для элементов в отдельных классах, которые я могу вызывать из своей функции Main, вопрос в том, как я могу использовать что-то вроде геттеров и сеттеров для записи сгенерированного объекта в эти массивы?
У меня нет кода для этого, потому что я понятия не имею, как это сделать.
Тем не менее, здесь есть конструктор предметов и массив моего оборудования:
public Amulet(String itemName,int itemPrice,int itemLevel,int bonusType,double bonusMagn) {
super(itemName,itemPrice,itemLevel,false,false,false,false,false,false,false,true,bonusType,bonusMagn);
this.itemName = itemName;
this.itemPrice = itemPrice;
this.itemLevel = itemLevel;
this.bonusType = bonusType;
this.bonusMagn = bonusMagn;
}
PlayerEquipment[] equipmentArray = new PlayerEquipment[8];
// The many booleans the canWearinSlotX values defined in the super.
Спасибо за вашу помощь!
EDIT:
Спасибо за ваши комментарии! Я уверен, что это выглядит ужасно для вас, но я сделал это, используя очень базовые знания. Я не знаю о EnumSet и как он работает, поэтому я смотрю его. То же самое со строителями. Для меня начиная с изучения 2-3 конструкторов параметров в классе, это был логичный шаг, чтобы расширить его таким образом.
Супер для этого конкретного предмета:
public class ItemMaster {
protected String itemName;
protected int itemPrice;
protected int itemLevel;
protected ItemMaster(String itemName,int itemPrice,int itemLevel) {
}
}
class ArmourMaster extends ItemMaster {
//Slot 1 Head,2 Chest,3 Legs,4 Foot,5 Hands,6 LeftRing,7 RightRing,8 Amulet
protected boolean canWear1;
protected boolean canWear2;
protected boolean canWear3;
protected boolean canWear4;
protected boolean canWear5;
protected boolean canWear6;
protected boolean canWear7;
protected boolean canWear8;
protected ArmourMaster(String itemName,int itemPrice,int itemLevel,boolean canWear1,boolean canWear2,boolean canWear3,boolean canWear4,boolean canWear5,boolean canWear6,boolean canWear7,boolean canWear8) {
super(itemName,itemPrice,itemLevel);
}
}
public class JewelryMaster extends ArmourMaster {
protected int bonusType;
protected double bonusMagn;
public JewelryMaster(String itemName,int itemPrice,int itemLevel,boolean canWear1,boolean canWear2,boolean canWear3,boolean canWear4,
boolean canWear5,boolean canWear6,boolean canWear7,boolean canWear8,int bonusType,double bonusMagn) {
super(itemName,itemPrice,itemLevel,canWear1,canWear2,canWear3,canWear4,canWear5,canWear6,canWear7,canWear8);
}
}
Вы видите, что я собираюсь носить доспехи, а также украшения в определенном слоте, и у драгоценностей будут только бонусы статов, а бонус защиты только доспехов. Я хочу, чтобы так было проще.