Liste überschreibt alte Elemte

Lisa0709

Mitglied
Hallo ihr Lieben,
ich bin kompletter Java Anfänger, brauche es allerdings jetzt für die Uni.
Wir haben ein Projekt, bei dem ich über die GUI einen Helikopter von Punkt A nach Punkt B fliegen lassen soll. Dies soll Kästchenweise über Pixel laufen.
Also muss ich den kürzesten Weg approximieren, sodass der Heli quasi im Zickzack fliegt.
Alles etwas kompliziert. Mein Problem ist nun, dass sich meine Liste, in der ich die Pixelkoordinaten speichere, immer wieder überschreibt.
Sobald die While-Schleife das zweite Mal aufgerufen wird, wird zwar korrekt ein Array eingefügt, allerdings verändert sich der Eintrag vorher in der Liste auch. Wie kann ich das verhindern? Danke schon mal für jegliche Hilfe! 🙂

ArrayList<int[]> pixelliste = new ArrayList<int[]>();

int[] pixel = new int[2];
int[] pixel1 = new int[2];

//x_start_akt sind die Pixelkoordinaten, die sich ständig aktualisieren.

while (x_start_akt != x_ende && y_start_akt != y_ende) {
if (x_start_akt != x_ende && y_start_akt != y_ende) {
pixel[0] = x_start_akt - 20;
pixel[1] = y_start_akt;
x_start_akt = x_start_akt - 20;

pixelliste.add(pixel);
}
if (x_start_akt != x_ende && y_start_akt != y_ende) {
pixel1[0] = x_start_akt;
pixel1[1] = y_start_akt - 20;
y_start_akt = y_start_akt - 20;

pixelliste.add(pixel1);

}
 
Du erstellst zu Beginn ein Array und fügst anschließend in der Schleife immer wieder das selbe Array in deine Liste ein.

Reicht dir das als Hinweis schon?
 

Zurück
Oben