Greenfoot: Wie entfernt man durch Tastendruck alle Objekte einer Klasse auf dem Spielfeld?

1 Antwort

Importiere das Package für die Liste:

import java.util.List;

Danach gibt es 2 Möglichkeiten.

a) Du merkst dir alle Objekte der Klasse Actor, die du erstellst und speicherst sie in dieser Liste. Wenn du sie löschen möchtest, kannst du mit einer Schleife über diese laufen.

for(int i = 0; i < actors.size(); ++i){
  getWorld().removeObject(actors.get(i));
}

b) Du läufst über alle Objekte, die die Welt hat und schaust, von welchem Typ diese sind.

List worldObjects = getObjects(null);

for(int i = 0; i < worldObjects.size(); ++i){ Object current = worldObjects.get(i);
if(current instanceof Actor){ getWorld().removeObject(current); } }

Um ausnahmslos alle Objekte zu entfernen, reicht auch Folgendes:

List objects = getObjects(null);
removeObjects(objects);

Eventuell solltest du bei jeder Lösung jeweils eine zusätzlich Abfrage einbauen, die prüft, ob Objekte überhaupt vorhanden sind:

if (objects != null) { /* ... */ }