Nicht nur für den Informatik-Unterricht
act()-Methode
- Java-Entwicklungsumgebung Greenfoot
- Greenfoot Dialog
- OOP-Konzepte
- act()-Methode
Tipps & Tricks

Jede Actor-Klasse bringt automatisch das Gerüst einer act()-Methode mit. In dieser legen Sie fest, wie sich ein Objekt verhält, also was in der Greenfoot-Welt geschehen soll. Gewöhnlich werden Sie in der act()-Methode andere Methoden aufrufen, die Sie in derselben Klasse definieren.
Hierzu einige Hinweise (siehe auch die englischsprachigen Videos greenfoot-overview.mov, create-new-scenario.mov, making-things-move.mov auf der Heft-DVD): Um ein Objekt zu bewegen, verwenden Sie die Methode setLocation(), denen Sie als Parameter die Koordinaten des neuen Standorts übergeben. Den aktuellen Standort fragen Sie dabei mit den Methoden getX() und getY() ab.
Ein Aufruf der setLocation()-Methode könnte demnach wie folgt aussehen: setLocation(getX() + 1, getY() + 1);. Dass sich die Objekte nicht aus der Welt heraus bewegen, prüfen Sie gegebenenfalls mit den Methoden getWidth() und getHeight() der World-Klasse. Den Bezug zu dieser stellen Sie im Code einer Actor-Klasse mit der Methode getWorld() her.
World myWorld = getWorld();
if (getX() >= myWorld.getWidth() ||
getY() >= myWorld.getHeight()) {
//Code für den Fall, dass die Grenzen der Welt überschritten sind
}
Ein Objekt, das Sie in der Welt nicht mehr benötigen - z.B. weil es, wie die Blätter im Wombat-Projekt, von anderen gefressen oder in einem Shooting-Spiel getroffen wird -, entfernen Sie im Code mit der Methode removeObject(), der Sie das zu entfernende Objekt als Parameter übergeben, z.B. getWorld().removeObject(leaf);. Den Bezug zu einem Objekt erhalten Sie mit der Methode getOneObjectAtOffset() über seinen Standort.
Die Koordinaten geben Sie relativ zum aktuellen Objekt an. Als dritten Parameter übergeben Sie den Typ. Wenn ein Wombat beispielsweise den gleichen Ort einnimmt wie ein Blatt, dann sieht ein Aufruf der getOneObjectAtOffset()-Methode so aus: getOneObjectAtOffset(0, 0, Leaf.class);. Rückgabewert ist in diesem Fall das Blatt respektive das Objekt der Klasse Leaf, das sich augenblicklich an der gleichen Stelle wie das aktuelle Objekt - hier das Wombat - befindet.
Eine für Spiele und Simulationen sehr interessante statische Methode findet sich in der Greenfoot-Klasse: Mit getRandomNumber() erhalten Sie eine Integer-Zufallszahl, beginnend bei 0, ohne wie bei der Random-Klasse von Java erst den Zufallsgenerator initialisieren zu müssen. Den exklusiven Höchstwert übergeben Sie als Parameter.
Ebenfalls mit Methoden der Greenfoot-Klasse (mouseClicked(), mouseMoved(), mouseDragged(), mouseDragEnded(), etc.) fragen Sie den Zustand der Maus in Bezug auf ein bestimmtes Objekt ab, das Sie der Methode übergeben. Für das aktuelle Objekt übergeben Sie den this-Zeiger, z.B mit dem Befehl Greenfoot.mouseClicked(this).
Die Methode gibt true zurück, wenn das entsprechende Objekt - im Beispiel Demo_PCM ein Ball - angeklickt wird. Über die Methode getMouseInfo() erhalten Sie ein MouseInfo-Objekt, mit dem Sie bei Bedarf die Koordinaten des Mauszeigers abfragen (Methoden getX() und getY()).
MouseInfo mouse =
Greenfoot.getMouseInfo();
if(mouse != null)
{ if(mouse.getX() == getX()&& mouse.getY() == getY())
{ ... }
}
Der Vergleich erfolgt hier mit den gleichnamigen Methoden getX() und getY() eines Actor-Objekts. Achten Sie gegebenenfalls darauf, das MouseInfo-Objekt auf null zu prüfen (if(mouse != null)), bevor Sie dessen Methoden aufrufen. Nach dem Kompilieren können Sie bereits Objekte der neuen Klasse erzeugen und in der Welt platzieren.

Mit der Exportfunktion (Scenario/Export...) speichern Sie ein ausführbares JAR-Archiv Ihres Projekts auf der Festplatte, erzeugen eine Webseite mit einem Java-Applet (möglicherweise, um dieses anschließend für die eigene Website zu übernehmen) oder veröffentlichen Ihre Kreation für die Allgemeinheit in der Greenfoot Gallery: http://greenfootgallery.org .
Wenn Sie so richtig Spaß daran gefunden haben, mit Greenfoot zu programmieren, schließen Sie sich am besten der Greenfoot-Community an. In der Mailing-Liste erfahren Sie rechtzeitig Wissenswertes zu neuen Greenfoot-Versionen und unter http://groups.google.com/group/greenfoot- discuss beteiligen Sie sich an Diskussionen zum Thema.
Dort werden Sie auch Antworten auf eventuelle Fragen finden. Außerdem steht es Ihnen frei, in der Greenfoot-Gallery (http://greenfootgallery.org) nach interessanten Szenarien von anderen Greenfoot-Programmierern Ausschau zu halten und mit ihnen in Kontakt zu treten.
Die Website www.greenfoot-center.de verweist zudem auf eine deutsche Greenfoot-Initiative. Sie finden dort u.a. spezielle Materialien für Lehrkräfte und Greenfoot-Szenarien in deutscher Sprache.