Nicht nur für den Informatik-Unterricht

act()-Methode

Tipps & Tricks

image.jpg

© PC Magazin

Dialog New Class: Jede Klasse ist in Greenfoot mit einem Symbol verbunden.

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.

image.jpg

© PC Magazin

YouTube for Programming Games: Szenario-Export in die Greenfoot Gallery

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.

Mehr zum Thema

HTML 5
Webgestaltung

Google Web Designer ist spezialisiert auf HTML5. Ein Vorteil dieses Standards ist das einfache Einbinden von Videos mit dem Element video. Wir zeigen…
Wir verraten, wie Sie Fritzboxen und andere Router vor Hackern schützen.
Fritzbox, Asus, Belkin und Co.

Fritzbox, Asus, Belkin oder DLink - die Liste der geknackten Router ist lang. Hacker stahlen Passwörter oder NAS-Daten. So machen Sie Ihren Router…
Wir führen Sie zur eigenen Windows-App - unserem PC-Magazin-RSS-Feed.
C# und XAML

Wir zeigen, wie Sie Windows 8.1 Apps selbst programmieren können. Lernen Sie das App erstellen an Hand unseres Beispiels: dem RSS-Feed von PC…
Windows Tipps & Tricks: Benutzerrechte unter Windows 8.1
Programme richtig installieren

Wir zeigen Ihnen, wie Sie sich unter Windows 8.1 alle Benutzerrechte verschaffen und Programme richtig installieren.
Windows 8: Starbildschirm
Microsoft Project Siena

Erstellen Sie sich selbst eine App für Windows 8, die auf alle Funktionen Ihres Tablets zugreifen kann, inklusive Kamera, Mikrofon und Lautsprecher.…