Android List<Sprite> sprites = new ArrayList<Sprite>() REMUVE

Habe ein Problem das mein Programm abstürzt wenn ich ein remove ausführe und nicht das letzte Objekt damit nicht gemeint ist!
Code:
public static List<Sprite> sprites = new ArrayList<Sprite>();

for (Sprite sprite : sprites) {
sprite.update();
sprite.onDraw(canvas);
if (sprite.getLive()<=0){sprites.remove(sprite);}
}

Habe auch Probiert das oberste Objekt in das zu löschende Objekt zu setzen und anschließend das oberste zu löschen! Hat nichts gebracht!
Bitte um Hilfe!
Danke
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Du brauchst einen Iterator, der dir das Löschen während der Iteration erlaubt:
Java:
for(Iterator<Sprite> it = sprites.iterator(); it.hasNext();) {
  Sprite sprite = it.next();
  sprite.update();
  sprite.onDraw(canvas);
  if(sprite.getLive() <= 0) {
    it.remove();
  }
}
 

Neue Themen


Oben