In Greenfoot Objekte zu anderem Objekt drehen?

1 Antwort

Über das World-Objekt kannst du alle Objekte eines bestimmten Typs suchen.

List<SomeType> objectsOfType = world.getObjects(SomeType.class);

oder du beschränkst die Suche auf einen bestimmten Umkreis um dein Objekt:

int radius = 10;
List<SomeType> objectsOfTypeInRange = 
yourActor.getObjectsInRange(radius, SomeType.class);

Aus der Ergebnisliste müsstest du jedenfalls das Objekt filtern, welches das Zielobjekt darstellen soll. Den Rest sollte turnTowards erledigen.

Actor target = // find target ...
yourActor.turnTowards(target.getX(), target.getY());
Steffenluehn 
Fragesteller
 06.03.2022, 11:58

Danke für die Hilfe, allerdings gibt Java mir eine Fehlermeldung "java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0" wenn ich den Code laufen lasse.

public void impfen()

 {

  List Impfzentren = getNeighbours​(100,true,Impfzentrum.class); 

  System.out.println(Impfzentren.get(0));

 }

CIh aknn mir nicht erklären was der Fehler ist. Ich habe "getObjects" gegen "get Neighbours" ausgetauscht

0
regex9  06.03.2022, 12:05
@Steffenluehn

Nun, es konnte halt kein Objekt im Suchbereich gefunden werden. Die Ergebnisliste ist folglich leer, einen Eintrag bei Index 0 gibt es nicht.

Aus diesem Grund wäre es sinnvoll, erst die Länge der Liste zu prüfen, bevor ein Versuch unternommen wird, auf einen Index zuzugreifen.

List<Impfzentrum> impfzentren = getNeighbours​(100, true, Impfzentrum.class);

if (impfzentren.size() > 0) {
  System.out.println(impfzentren.get(0));
}
0