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

Lisaks abistavaid blogisid, tutoriale