greenfoot
Class World

java.lang.Object
  extended by greenfoot.World

public abstract class World
extends Object

World ist die Welt, in der die Akteure leben. Sie besteht aus einem zweidimensionalen Gitter.

Jeder Akteur gehört einer Welt an und kann für diese Zugriff bekommen. Die Größe der Zellen kann zum Erstellungszeitpunkt festgelegt werden und ist konstant. Einfache Szenarien können so große Zellen benutzen, die einzelne Objekte enthalten, während komplexere Szenarien kleinere Zellen benutzen können (bis zu einem Pixel kleine Zellen), um eine größere Genauigkeit und flüssigere Animationen zu erzielen.

Der Hintergrund der Welt kann mit Zeichnungen oder Bildern versehen werden.

Version:
2.4
Author:
Gunnar Johannesmeyer; Update auf 2.4: Dennis Nolte
See Also:
Actor

Constructor Summary
World(int worldWidth, int worldHeight, int cellSize)
          Erzeugt eine neue Welt.
World(int worldWidth, int worldHeight, int cellSize, boolean bounded)
          Erzeugt eine neue Welt.
 
Method Summary
 void act()
          Die zentrale act Methode der Welt.
 void addObject(Actor object, int x, int y)
          Fügt einen Actor zur Welt hinzu.
 GreenfootImage getBackground()
          Gibt das Hintergrundbild der Welt zurück.
 int getCellSize()
          Gibt die Größe der Zelle zurück (in Pixel).
 Color getColorAt(int x, int y)
          Gibt die Farbe des Mittelpunktes einer Zelle zurück.
 int getHeight()
          Gibt die Höhe der Welt zurück (Anzahl der Zellen).
 List getObjects(Class cls)
          Gibt alle Objekte der Welt oder alle Objekte einer angegebenen Klasse zurück.
 List getObjectsAt(int x, int y, Class cls)
          Gibt alle Objekte der angegebenen Zelle zurück.
 int getWidth()
          Gibt die Breite der Welt zurück (Anzahl der Zellen).
 int numberOfObjects()
          Gibt die Anzahl der Actors in der Welt zurück.
 void removeObject(Actor object)
          Entfernt ein Objekt aus der Welt.
 void removeObjects(Collection objects)
          Entfernt eine Liste von Objekten aus der Welt.
 void repaint()
          Zeichnet die Welt erneut.
 void setActOrder(Class... classes)
          Setzt die Reihenfolge, in der die act Methoden der Objekte aufgerufen werden.
 void setBackground(GreenfootImage image)
          Setzt ein Hintergrundbild für die Welt.
 void setBackground(String filename)
          Setzt ein Hintergrundbild für die Welt aus einer als Parameter übergebenen Bilddatei.
 void setPaintOrder(Class... classes)
          Setzt die Reihenfolge, in der die Objekte in der Welt gezeichnet werden.
 void started()
          Diese Methode wird vom Greenfoot-System aufgerufen, sobald die Ausführung des Programms gestartet wurde.
 void stopped()
          Diese Methode wird vom Greenfoot-System aufgerufen, sobald die Ausführung des Programms gestoppt wurde.
 
Methods inherited from class
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

World

public World(int worldWidth,
             int worldHeight,
             int cellSize)
Erzeugt eine neue Welt. Die Breite und Höhe der Welt muss mit der Anzahl der Zellen angegeben werden. Die Größe der Zelle (in Pixel) muss angegeben werden.

Parameters:
worldWidth - Die Breite der Welt (in Zellen).
worldHeigth - Die Höhe der Welt (in Zellen).
cellSize - Die Größe einer Zelle in Pixel.

World

public World(int worldWidth,
             int worldHeight,
             int cellSize,
             boolean bounded)
Erzeugt eine neue Welt. Die Breite und Höhe der Welt muss mit der Anzahl der Zellen angegeben werden. Die Größe der Zelle (in Pixel) muss angegeben werden. Dieser Konstruktor erlaubt die Erstellungen einer unbegrenzten Welt, so dass Actors sich auch außerhalb der Welt bewegen können.

Parameters:
worldWidth - Die Breite der Welt (in Zellen).
worldHeigth - Die Höhe der Welt (in Zellen).
cellSize - Die Größe einer Zelle in Pixel.
bounded - Sollen Actors an die Grenzen der Welt gebunden sein?
Method Detail

act

public void act()
Die zentrale act Methode der Welt. Die act Methode wird von der Greenfoot-Entwicklungsumgebung bei jedem Aktionsschritt aufgerufen. Die act Methode der Welt wird vor der act Methode der anderen Objekte in der Welt aufgerufen.

Diese Methode ist im Ausgangszustand leer. Sie sollte in Unterklassen überschrieben werden, um die Aktionen der Welt zu implementieren.


addObject

public void addObject(Actor object,
                      int x,
                      int y)
Fügt einen Actor zur Welt hinzu.

Parameters:
object - Das neu hinzuzufügende Objekt.
x - Die x-Koordinate der Position, an die das Objekt hinzugefügt werden soll.
y - Die y-Koordinate der Position, an die das Objekt hinzugefügt werden soll.

getBackground

public GreenfootImage getBackground()
Gibt das Hintergrundbild der Welt zurück. Das Bild kann dazu benutzt werden, um auf den Hintergrund der Welt zu zeichnen.

Returns:
Das Hintergrundbild.

getCellSize

public int getCellSize()
Gibt die Größe der Zelle zurück (in Pixel).


getColorAt

public Color getColorAt(int x,
                        int y)
Gibt die Farbe des Mittelpunktes einer Zelle zurück. Um mit einer Farbe zeichnen zu können, muss das Hintergrundbild des Welt zuvor geholt werden (siehe getBackground() ).

Parameters:
x - x-Koordinate des Bildpunktes.
y - y-Koordinate des Bildpunktes.
Throws:
IndexOutOfBoundsException - Wenn die Position nicht innerhalb der Weltgrenzen liegt. Wenn sich kein Hintergrundbild an der Position befindet, wird COLOR.WHITE zurückgegeben.
See Also:
getBackground()

getHeight

public int getHeight()
Gibt die Höhe der Welt zurück (Anzahl der Zellen).


getObjects

public List getObjects(Class cls)
Gibt alle Objekte der Welt oder alle Objekte einer angegebenen Klasse zurück.

Wenn eine Klasse im Parameter angeben ist, werden nur Objekte dieser Klasse (oder deren Unterklassen) zurückgegeben.

Parameters:
cls - Klasse von Objekten, nach denen gesucht werden soll (null findet alle Objekte).
Returns:
Eine Liste von gefundenen Objekten.

getObjectsAt

public List getObjectsAt(int x,
                         int y,
                         Class cls)
Gibt alle Objekte der angegebenen Zelle zurück.

Per Definition ist ein Objekt in einer Zelle, wenn dessen graphische Darstellung den Mittelpunkt dieser Zelle überlagert.

Parameters:
x - x-Koordinate der Zelle, die überprüft werden soll.
y - y-Koordinate der Zelle, die überprüft werden soll.
cls - Klasse der Objekte, nach denen gesucht werden soll (null gibt alle Objekte zurück).

getWidth

public int getWidth()
Gibt die Breite der Welt zurück (Anzahl der Zellen).


numberOfObjects

public int numberOfObjects()
Gibt die Anzahl der Actors in der Welt zurück.

Returns:
Die Anzahl der Actors.

removeObject

public void removeObject(Actor object)
Entfernt ein Objekt aus der Welt.

Parameters:
object - Das Objekt, welches entfernt werden soll.

removeObjects

public void removeObjects(Collection objects)
Entfernt eine Liste von Objekten aus der Welt.

Parameters:
objects - Eine Liste von Actors, die entfernt werden sollen.

repaint

public void repaint()
Zeichnet die Welt erneut.


setActOrder

public void setActOrder(Class... classes)
Setzt die Reihenfolge, in der die act Methoden der Objekte aufgerufen werden. Die Reihenfolge wird in Klassen angegeben. Objekte einer Klasse agieren immer vor Objekte einer anderen Klasse. Die Reihenfolge der Objekte einer gleichen Klasse kann nicht beeinflusst werden.

Objekte von Klassen, die als erstes in der Parameterliste aufgelistet werden, agieren eher als Objekte der Klassen, die später aufgelistet werden.

Objekte der Klassen, die nicht ausdrücklich genannt werden, erben die Reihenfolge ihrer Oberklassen.

Objekte der Klassen, die nicht aufgelistet sind, agieren nach den Objekten der angegebenen Klassen.

Parameters:
classes - Die Klassen in gewünschter Reihenfolge, in der die Methode act aufgerufen werden soll.

setBackground

public final void setBackground(GreenfootImage image)
Setzt ein Hintergrundbild für die Welt. Wenn die Bildmaße größer als die Welt in Pixel sind, wird das Bild abgeschnitten. Wenn die Bildmaße kleiner sind, wird das Bild gekachelt dargestellt. Ein Ausfüllmuster kann leicht erzeugt werden, indem das Hintergrundbild die gleichen Maße wie die Zellgröße hat.

Parameters:
image - Bild, welches angezeigt werden soll.
See Also:
setBackground(String), setTiled(boolean).

setBackground

public final void setBackground(String filename)
                         throws IllegalArgumentException
Setzt ein Hintergrundbild für die Welt aus einer als Parameter übergebenen Bilddatei. Unterstützt werden Bilder im Format jpg, gif und png. Wenn die Bildmaße größer sind als die Welt in Pixel, wird es abgeschnitten. Ein Ausfüllmuster kann leicht angezeigt werden, wenn das Hintergrundbild die gleichen Maße wie die Zellgröße hat.

Parameters:
filename - Die zu verwendende Bilddatei.
Throws:
IllegalArgumentException - Wenn das Bild nicht geladen werden kann.
See Also:
setBackground(GreenfootImage)

setPaintOrder

public void setPaintOrder(Class... classes)
Setzt die Reihenfolge, in der die Objekte in der Welt gezeichnet werden. Die Reihenfolge wird in Klassen angegeben. Objekte einer Klasse werden immer über Objekte einer anderen Klasse angezeigt. Die Reihenfolge der Objekte einer gleichen Klasse kann nicht beeinflusst werden. Objekte von Klassen, die als erstes in der Parameterliste aufgelistet werden, erscheinen weiter im Vordergrund als die Klassen, die später aufgelistet werden.

Objekte der Klassen, die nicht ausdrücklich genannt werden, erben die Zeichnungsreihenfolge ihrer Oberklassen.

Objekte der Klassen, die nicht aufgelistet sind, erscheinen unter den Objekten der angegebenen Klassen.

Parameters:
classes - Die Klassen in gewünschter Zeichnungsreihenfolge.

started

public void started()
Diese Methode wird vom Greenfoot-System aufgerufen, sobald die Ausführung des Programms gestartet wurde. Diese Methode kann überschrieben werden, um das Verhalten zum Beginn der Ausführung zu ändern.

Die voreingestellte Implemantation ist leer.


stopped

public void stopped()
Diese Methode wird vom Greenfoot-System aufgerufen, sobald die Ausführung des Programms gestoppt wurde. Diese Methode kann überschrieben werden, um das Verhalten zum Ende der Ausführung zu ändern.

Die voreingestellte Implemantation ist leer.