Schönen guten Abend,
ich versuche es erstmal auf deutsch.
Für ein Geburtstagsgeschenk wollten meine Tochter und ich ein kleines Scenario kreieren.
Sie hatte Greenfoot auf dem Zukunftstag in Niedersachsen kennengelernt, mir war es völlig unbekannt (bin kein Programmierer, nur versierter Anwender).
Jetzt fehlt uns langsam die Zeit und ich finde keine Lösung.
Problem: aufbauend auf der HamsterWorld wir haben 4 Schildkröten erstellt, die Erdbeeren ablegen. Wenn sie keine mehr im Maul haben, sollen sie
a) entweder weiterlaufen, ohne weiter Erdbeeren abzulegen,
b) sich im Kreis drehen (void turn), oder
c) sich mit "Pop" auflösen.
Das Auflösen kriege ich noch hin, aber leider bleibt dann die ganze Welt stehen.
Turn habe ich nicht zum Laufen gekriegt; a) ebenfalls nicht (dann läuft die Schildkröte weiter, und legt nach einer Pause ab -1 weiterhin Erdbeern ab).
Mag uns jemand helfen? Danke!
Hier die wichtigsten Ausschnitte aus dem Code der Schildkroete.class:
public void act() {
if (vornFrei()) {
vor();
} else {
linksUm();
if (vornFrei()) {
vor();
} else {
linksUm();
linksUm();
vor();
}
}
if (ErdbeereDa()) {
nimm();
} else {
gib();
}
}
UND:
public void gib() throws MaulLeerException {
if (maulLeer()) {
getWorld().removeObject(this);
Greenfoot.playSound("pop.wav");
}
ErdbeerenImMaul--;
getWorld().addObject(new Erdbeere(), getX(), getY());
Edit:
Oh, ich fand eine erste Lösung bei "Actors death" Nur eine Zeile mit "return;" nach playSound, und schon funzt es.
Wenn mir trotzdem einer zeigen könnte, wie die anderen beiden Varianten gehen könnten, würde ich mich seehhr freuen, danke!

