Hi Leute ich habe gerade ein Problem mit meinen Inventar.
Also ich habe das Inventar als ArrayList erstellt.
So wenn man jetzt ne Kiste öffnet kann ich Items hinzufügen.
Anzeigen tu ich das Inventar dann so.
Das funktioniert auch alles.
Jetzt kommen aber Items doppelt vor.
Deswegen hab ich der Itemklasse das Attribut Anzahl gegeben.
Wenn man jetzt ein Item aufnimmt was es schon im Inventar gibt soll einfach nur die Anzahl erhöht werden.
Überprüfe ich das für nur ein Item geht es auch, aber bei mehreren weiss ich nicht wie ich das machen soll.
Hab es jetzt so versucht.
Es wird einmal durch das Inventar gegangen und durch den Inhalt der Kiste.
Also zuerst nimmt er das erste Item des Inventars, dann geht er alle Items der Kiste durch.
Wenn es das Item in der Kiste sowie im Inventar gibt soll er die Anzahl erhöhen.
Ansonsten soll das item zum Inventar hinzugefügt werden.
value.chestNr ist nur die ID der Kiste die der Spieler gerade öffnet.
Das Problem ist jetzt das am Anfang das Inventar ja leer ist also wird die Schleife gar nicht erst ausgeführt.
Wie kann ich das lösen weiss das wer? Oder wie habt ihr das gemacht.
Also ich habe das Inventar als ArrayList erstellt.
So wenn man jetzt ne Kiste öffnet kann ich Items hinzufügen.
Java:
inventar.add(trank);
Anzeigen tu ich das Inventar dann so.
Java:
for(int i = 0; i < inventar.size();i++)
{
g.drawString(""+inventar.get(i).name, 100, 20*i + 80);
g.drawString(" x"+inventar.get(i).anz, 240, 20*i + 80);
}
Jetzt kommen aber Items doppelt vor.
Deswegen hab ich der Itemklasse das Attribut Anzahl gegeben.
Wenn man jetzt ein Item aufnimmt was es schon im Inventar gibt soll einfach nur die Anzahl erhöht werden.
Überprüfe ich das für nur ein Item geht es auch, aber bei mehreren weiss ich nicht wie ich das machen soll.
Hab es jetzt so versucht.
Es wird einmal durch das Inventar gegangen und durch den Inhalt der Kiste.
Also zuerst nimmt er das erste Item des Inventars, dann geht er alle Items der Kiste durch.
Wenn es das Item in der Kiste sowie im Inventar gibt soll er die Anzahl erhöhen.
Ansonsten soll das item zum Inventar hinzugefügt werden.
Java:
// Spieler nimmt den Inhalt der Kiste
if(value.enter)
{
// Anzahl der Items im Inventar
for(int w = 0; w < inventar.size();w++)
{ // Anzahl der Items in der Kiste
for(int z = 0; z < chestList.get(value.chestNr).items.size();z++){
// Wenn ein Item in der Kiste schon im Inventar ist erhöhe die Anzahl
if(!inventar.isEmpty() && inventar.get(w).name.matches(chestList.get(value.chestNr).items.get(z).name))
inventar.get(w).anz += chestList.get(value.chestNr).items.get(z).anz;
else
inventar.add(chestList.get(value.chestNr).items.get(z));
}
}
chestList.remove(value.chestNr);
}
value.chestNr ist nur die ID der Kiste die der Spieler gerade öffnet.
Das Problem ist jetzt das am Anfang das Inventar ja leer ist also wird die Schleife gar nicht erst ausgeführt.
Wie kann ich das lösen weiss das wer? Oder wie habt ihr das gemacht.