Inventory¶
Põhimõte¶
Inventory ehk inventar on tüüpiliselt kogum, kus mängija saab hoida teatud ressursse või esemeid (item), nagu näiteks toitu, varustust ja relvi. Inventory võime implementeerida klassina, mis salvestab mängija esemeid massiivis. Samuti loome eraldi klassi Item esemete jaoks.
Item¶
Esmalt implementeerime Item
klassi. See võiks sisaldada eseme kirjeldust või omadusi, nagu näiteks nimi, tugevus, vastupidavus, tähendus jms., olenevalt mis tüüpi esemeid Sa planeerid oma mängus kasutada.
public class Item {
private final String name;
public Item(String name) {
this.name = name;
// Siia võib lisada rohkem omadusi
}
public String getName() {
return name;
}
}
Inheritance¶
Item
klass võib olla baasiks erinevatele esemetele, nagu Weapon ja Food, mis laiendavad selle funktsionaalsust. Inheritance ehk päriluse abil saame luua uusi klasse, mis põhinevad olemasolevatel. Näiteks on allpool Weapon
klass, mis on laiendus Item
klassist. Kõik Item omadused on ka Weapon klassil, kuid see saab lisada ka oma omadusi, nagu damage
.
public class Weapon extends Item {
private final int damage;
public Weapon(String name, int damage) {
super(name);
this.damage = damage;
}
public int getDamage() {
return damage;
}
}
Inventory¶
Kui Item
klass on defineeritud, saame luua Inventory
klassi. Selle jaoks kasutame massiivi, kus hoida Item
objekte ning võime defineerida, kui suur see on.
public class Inventory {
private final ArrayList<Item> items;
private final int maxCapacity;
public Inventory(int maxCapacity) {
this.maxCapacity = maxCapacity;
this.items = new ArrayList<>();
}
public boolean addItem(Item item) {
if (items.size() < maxCapacity) {
items.add(item);
return true;
}
return false;
}
public void removeItem(Item item) {
items.remove(item);
}
public ArrayList<Item> getItems() {
return items;
}
public int getMaxCapacity() {
return maxCapacity;
}
}
Näide Inventory kasutamisest¶
Inventory inventory = new Inventory(10); // Loome uue inventari, kus on maksimaalselt 10 eset
Item key = new Item("Key"); // Loome uue eseme nimega Key
Weapon sword = new Weapon("Sword", 15); // Loome uue eseme nimega Sword, damage=15
inventory.addItem(key); // Lisame eseme inventari
inventory.removeItem(key); // Eemaldame eseme inventarist