Guten Tag, ich schreibe ein 2d Helikopter Spiel, dort sind Gegner welche eine ArrayList schuesse bekommen, bzw. jedesmal wenn ein Schuss von einem Gegner gegeben wird, wird eine Instanz aus der Klasse schuesse gemacht und in die ArrayList schuesse von Gegner eingetragen.
Das Problem ist nun das sobald ein neuer Gegner generiert wird (z.B. 2 stück tauchen gleichzeitig auf) dann wird anscheinend die ArrayList schuesse überschrieben von den Gegnern bisher.
Ein Beispiel wie die Gegner Klasse aufgebaut ist:
Mit dem Code - Wenn ich eine Instanz aus gegner erstelle und dann hol ich mir die ArrayList raus mit z.B. a.schuesse, wie kann das sein das ich nur eine globale ArrayList schuesse habe für alle gegner, statt das bei jeder Instanz eine neue ArrayList schuesse für jeden Gegner generiert wird?
Also ich denke das dies passiert, da ich sonst meinen Fehler nicht finde und alles nun bestimmt 10x geprüft habe.
Ist etwas schwer zu erklären, aber wenn jemand versteht was ich meine, wäre es super mir weiterzuhelfen
Das Problem ist nun das sobald ein neuer Gegner generiert wird (z.B. 2 stück tauchen gleichzeitig auf) dann wird anscheinend die ArrayList schuesse überschrieben von den Gegnern bisher.
Ein Beispiel wie die Gegner Klasse aufgebaut ist:
Java:
import java.awt.Image;
import java.util.ArrayList;
public class gegner {
int x,y;
Image pic;
static ArrayList schuesse;
public gegner(int x, int y, Image pic){
this.x = x;
this.y = y;
this.pic = pic;
schuesse = new ArrayList();
}
public void fire(){
Schuss z = new Schuss(x,y);
schuesse.add(z);
}
}
}
Mit dem Code - Wenn ich eine Instanz aus gegner erstelle und dann hol ich mir die ArrayList raus mit z.B. a.schuesse, wie kann das sein das ich nur eine globale ArrayList schuesse habe für alle gegner, statt das bei jeder Instanz eine neue ArrayList schuesse für jeden Gegner generiert wird?
Also ich denke das dies passiert, da ich sonst meinen Fehler nicht finde und alles nun bestimmt 10x geprüft habe.
Ist etwas schwer zu erklären, aber wenn jemand versteht was ich meine, wäre es super mir weiterzuhelfen
Zuletzt bearbeitet: