In Greenfoot Objekte zu anderem Objekt drehen?
Ich möchte in Greenfoot ein Objekt dazu bringen nach einem Objekt einer anderen Klasse zu scueh und sich dann in die Richtung des Objektes zu drehen.
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Java
Ü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());
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));
}
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