Greenfoot getIntersectingObject funktioniert nicht?
Ich habe einen Greenfoot-Code geschrieben, der immer wenn ein Objekt Mensch auf einem anderen Objekt Mensch steht und dieser Infiziert mit einem Virus ist, der andere Mensch sich anstecken soll.
Mensch m = (Mensch)getOneIntersectingObject(Mensch.class);
if (m != null) {
if (m.infiziert = true ) {
infiziert = true;
}
}
Ich verstehe nicht, warum die Nichtinfizierten sich nicht anstecken.
1 Antwort
Direkt auffällig ist, dass deine innere Kontrollstruktur falsch ist. Im Kopf nimmst du eine Zuweisung vor, sodass dieser Mensch auf jeden Fall infiziert wird, egal ob er es zuvor auch war. Dabei möchtest du da doch aber nur einen Vergleich:
if (m.infiziert == true) {
Ob beim Aufruf von getOneIntersectingObject ein kollidierendes Objekt gefunden wird, kannst du leicht prüfen, indem du dir das Ergebnis der Methode ausgeben lässt.
System.out.println(m.toString());
Ich kann nur Bezug auf die Infos geben, die du teilst. Insofern kann ich dir derzeit lediglich den Rat geben, mit Konsolenausgaben oder dem Debugging-Tool den Programmverlauf sowie Zwischenzustände/-werte zu überprüfen, um die Fehlerquelle zu lokalisieren.
Danke für deinen Hinweis auf die Kontrollstruktur!
Trotzdem funktioniert mein Code immernoch nicht