Package ea.edu
Class Spiel
java.lang.Object
ea.edu.Spiel
Diese Klasse steuert die EDU-Version. Sie ist Schnittstelle für:
- Szenen-Management
- Listener-Management
- Author:
- Michael Andonie, Niklas Keller
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
benenneAktiveSzene
(String name) Gibt der aktuellen Szene einen Namen.void
entferneBildAktualisierungReagierbar
(BildAktualisierungReagierbar bildAktualisierungReagierbar) Entfernt einen pro-forma Frameupdate-Listener von der aktiven Szene.void
entferneMausKlickReagierbar
(MausKlickReagierbar mausKlickReagierbar) Entfernt ein Objekt wieder, sodass es nicht mehr auf Mausklicks reagiert.void
entferneMausRadReagierbar
(MausRadReagierbar mausRadReagierbar) Meldet einen MausRad-Listener an der aktiven Szene ab.void
entferneTastenReagierbar
(TastenReagierbar tastenReagierbar) Entfernt ein Objekt wieder, sodass es nicht mehr auf Tasten reagiert.void
entferneTicker
(Ticker ticker) Meldet einen "Ticker" ab.void
erzeugeNeueEbene
(String ebenenName, int ebenenPosition) Fügt der derzeit aktiven Szene eine neue Ebene hinzu.void
Erstellt eine neue (leere) Szene und setzt diese aktiv.static ea.edu.internal.EduScene
static Color
konvertiereVonFarbname
(String farbname) Diese Methode ordnet einem String ein Color-Objekt zu.
Hierdurch ist in den Klassen außerhalb der Engine keine awt-Klasse nötig.static String
konvertiereZuFarbname
(Color color) Reverse-Lookup für Farbzuordnung.String[]
Gibt die Namen aller Layer der aktiven Szene aus.static String[]
double
double
Gibt die X-Koordinate der Maus auf der Spielebene an.double
Gibt die Y-Koordinate der Maus auf der Spielebene an.String[]
Gibt die Namen aller gespeicherten Szenen aus.static void
Führt das übergebene Runnable parallel aus.void
registriereBildAktualisierungReagierbar
(BildAktualisierungReagierbar bildAktualisierungReagierbar) Meldet ein Objekt an, dass zu jedem Frame-Update in der aktuell aktiven Szene durch Aufruf der MethodebildAktualisierungReagieren(int ms)
informiert wird (Parameter gibt die Anzahl an Millisekunden an, die seit dem letzten Frame-Update vergangen sind.static void
registriereFarbe
(String string, Color color) Fügt eine String-awt/Color-Zuordnung zu.void
registriereMausKlickReagierbar
(MausKlickReagierbar mausKlickReagierbar) Meldet ein Objekt an, das ab sofort auf Mausklicks reagieren wird.void
registriereMausRadReagierbar
(MausRadReagierbar mausRadReagierbar) Meldet einen MausRad-Listener an der aktiven Szene an.void
registriereTastenReagierbar
(TastenReagierbar tastenReagierbar) Meldet ein Objekt an, das ab sofort auf Tasten reagieren wird.void
registriereTicker
(double intervallInSekunden, Ticker ticker) Meldet ein Objekt zum Ticken an.void
rotiereKamera
(double grad) void
setzeAktiveEbene
(String ebenenName) void
void
setzeAktiveSzene
(String name) Setzt die aktive Szene.void
setzeEbenenparallaxe
(String ebenenName, double x, double y, double zoom) void
setzeEbenenzeitverzerrung
(String ebenenName, double zeitverzerrung) void
setzeErkundungsmodusAktiv
(boolean aktiv) Setzt, ob die aktive Szene den Erkundungsmodus aktiv hat.static void
setzeFensterGroesse
(int breite, int hoehe) Setzt die Größe des Engine-Fensters.void
setzeKamerafokus
(EduActor fokus) void
setzeKamerarotation
(double grad) void
setzeKamerazoom
(double zoom) void
setzeRasterSichtbar
(boolean sichtbar) Setzt, ob das Hilfs-Raster, das die Koordinatenachsen visualisiert, dargestellt werden soll.void
setzeSchwerkraft
(double schwerkraft) void
verschiebeKamera
(double x, double y) void
zeigeNachricht
(String nachricht) boolean
zeigeNachrichtMitEingabe
(String nachricht) boolean
zeigeNachrichtMitJaNein
(String frage)
-
Field Details
-
STANDARD_TITEL
- See Also:
-
STANDARD_BREITE
public static final int STANDARD_BREITE- See Also:
-
STANDARD_HOEHE
public static final int STANDARD_HOEHE- See Also:
-
-
Constructor Details
-
Spiel
public Spiel()
-
-
Method Details
-
parallel
Führt das übergebene Runnable parallel aus.Die einfachste Verwendung ist über eine Methodenreferenz:
Spiel.parallel(this::schalteAmpel)
-
registriereFarbe
Fügt eine String-awt/Color-Zuordnung zu.- Parameters:
string
- Farbname (Groß-/Kleinschreibung egal)color
- Entsprechendes Java-AWT-Color-Objekt
-
nenneFarben
- Returns:
- Listet alle verfügbaren Farbnamen.
-
konvertiereVonFarbname
Diese Methode ordnet einem String ein Color-Objekt zu.
Hierdurch ist in den Klassen außerhalb der Engine keine awt-Klasse nötig.- Parameters:
farbname
- Der Name der Farbe.- Returns:
- Das Farbobjekt zum String; ist Color.black bei unzuordnembaren String
-
konvertiereZuFarbname
Reverse-Lookup für Farbzuordnung. -
setzeFensterGroesse
@API public static void setzeFensterGroesse(int breite, int hoehe) Setzt die Größe des Engine-Fensters.- Parameters:
breite
- Fenster-Breitehoehe
- Fenster-Hoehe
-
getActiveScene
@Internal public static ea.edu.internal.EduScene getActiveScene() -
setzeRasterSichtbar
@API public void setzeRasterSichtbar(boolean sichtbar) Setzt, ob das Hilfs-Raster, das die Koordinatenachsen visualisiert, dargestellt werden soll.- Parameters:
sichtbar
- ist dieser Werttrue
, wird das Raster dargestellt. Ist erfalse
, wird das Raster deaktiviert.
-
setzeErkundungsmodusAktiv
@API public void setzeErkundungsmodusAktiv(boolean aktiv) Setzt, ob die aktive Szene den Erkundungsmodus aktiv hat. Ist der Erkundungsmodus aktiv, so kann man die aktuellen Szene navigieren mit Pfeiltasten (Kameraposition) und Mausrad (Kamerazoom)- Parameters:
aktiv
- Ob der Erkundungsmodus aktiv sein soll.
-
benenneAktiveSzene
Gibt der aktuellen Szene einen Namen. Eine Szene mit Name bleibt im System erhalten und kann wieder aufgerufen werden.- Parameters:
name
- Der Name für die Szene.- See Also:
-
erzeugeNeueSzene
@API public void erzeugeNeueSzene()Erstellt eine neue (leere) Szene und setzt diese aktiv. Damit- Wird der Bildschirm "geleert"
- Geht die vorige Szene "verloren", wenn sie nicht mit benannt wurde.
- Werden alle grafischen Objekte, die ab sofort erstellt werden, in der neuen Szene eingesetzt.
- See Also:
-
setzeAktiveSzene
Setzt die aktive Szene. Wurde eine Szene benannt, so bleibt sie gespeichert und kann wieder aktiv gesetzt werden.- Parameters:
name
- der Name der aktiv zu setzenden Szene.- See Also:
-
nenneSzenennamen
Gibt die Namen aller gespeicherten Szenen aus.- Returns:
- Ein String Array. Jeder Eintrag entspricht dem Namen einer der gespeicherten Szenen des Spiels. Szenen, die nicht benannt wurden, haben keinen Namen und werden daher nicht mit aufgelistet.
- See Also:
-
erzeugeNeueEbene
Fügt der derzeit aktiven Szene eine neue Ebene hinzu.- Parameters:
ebenenName
- Der Name für die neue Ebene. Muss für die derzeit aktive Szene einzigartig sein.ebenenPosition
- Die Position für die neue Ebene. Bestimmt, in welcher Reihenfolge Ebenen dargestellt werden. Ebenen mit einem größeren Positionswert werden vor Ebenen mit einem kleineren Positionswert angezeigt. Die Hauptebene hat die Position 0.
-
setzeEbenenparallaxe
-
setzeEbenenzeitverzerrung
-
setzeAktiveEbene
-
setzeAktiveEbeneAufHauptebene
@API public void setzeAktiveEbeneAufHauptebene() -
nenneEbenennamenVonAktiverSzene
Gibt die Namen aller Layer der aktiven Szene aus.- Returns:
- Ein String Array. Jeder Eintrag entspricht dem Namen einer Ebene in der aktiven Szene des Spiels.
- See Also:
-
verschiebeKamera
@API public void verschiebeKamera(double x, double y) -
setzeKamerazoom
@API public void setzeKamerazoom(double zoom) -
nenneKamerazoom
@API public double nenneKamerazoom() -
setzeKamerafokus
-
rotiereKamera
@API public void rotiereKamera(double grad) -
setzeKamerarotation
@API public void setzeKamerarotation(double grad) -
setzeSchwerkraft
@API public void setzeSchwerkraft(double schwerkraft) -
zeigeNachricht
-
zeigeNachrichtMitBestaetigung
-
zeigeNachrichtMitJaNein
-
zeigeNachrichtMitEingabe
-
registriereMausKlickReagierbar
Meldet ein Objekt an, das ab sofort auf Mausklicks reagieren wird.- Parameters:
mausKlickReagierbar
- Das anzumeldende Objekt.
-
entferneMausKlickReagierbar
Entfernt ein Objekt wieder, sodass es nicht mehr auf Mausklicks reagiert.- Parameters:
mausKlickReagierbar
- Das abzumeldende Objekt.
-
registriereTastenReagierbar
Meldet ein Objekt an, das ab sofort auf Tasten reagieren wird.- Parameters:
tastenReagierbar
- Das anzumeldende Objekt.
-
entferneTastenReagierbar
Entfernt ein Objekt wieder, sodass es nicht mehr auf Tasten reagiert.- Parameters:
tastenReagierbar
- Das abzumeldende Objekt.
-
registriereTicker
Meldet ein Objekt zum Ticken an.- Parameters:
ticker
- Das anzumeldende Objekt, dessen Tickermethode aufgerufen werden soll.
Es MUSS eine Methodetick()
haben.intervallInSekunden
- Das Intervall in Sekunden, in dem das anzumeldende Objekt aufgerufen.
-
entferneTicker
Meldet einen "Ticker" ab.- Parameters:
ticker
- Das Angemeldete "Ticker"-Objekt, das nun nicht mehr aufgerufen werden soll.- See Also:
-
registriereBildAktualisierungReagierbar
@API public void registriereBildAktualisierungReagierbar(BildAktualisierungReagierbar bildAktualisierungReagierbar) Meldet ein Objekt an, dass zu jedem Frame-Update in der aktuell aktiven Szene durch Aufruf der MethodebildAktualisierungReagieren(int ms)
informiert wird (Parameter gibt die Anzahl an Millisekunden an, die seit dem letzten Frame-Update vergangen sind.- Parameters:
bildAktualisierungReagierbar
- Ein beliebiges Objekt. Hat das Objekt keine Methode mit der SignaturbildAktualisierungReagieren(int)
, so passiert nichts. Andernfalls wird ab sofort zu jedem Frame-Update der aktuellen Szene die Methode ausgeführt.- See Also:
-
entferneBildAktualisierungReagierbar
@API public void entferneBildAktualisierungReagierbar(BildAktualisierungReagierbar bildAktualisierungReagierbar) Entfernt einen pro-forma Frameupdate-Listener von der aktiven Szene.- Parameters:
bildAktualisierungReagierbar
- Das zu entfernende Objekt. War es nie angemeldet, so passiert nichts.- See Also:
-
registriereMausRadReagierbar
Meldet einen MausRad-Listener an der aktiven Szene an.- Parameters:
mausRadReagierbar
- Ein Objekt mit einer Methode mit SignaturmausRadReagieren(float)
- See Also:
-
entferneMausRadReagierbar
Meldet einen MausRad-Listener an der aktiven Szene ab.- Parameters:
mausRadReagierbar
- Der abzumeldende Mausrad-Listener- See Also:
-
nenneMausPositionX
@API public double nenneMausPositionX()Gibt die X-Koordinate der Maus auf der Spielebene an.- Returns:
- Die X-Koordinate der Maus auf der Spielebene (in Meter)
- See Also:
-
nenneMausPositionY
@API public double nenneMausPositionY()Gibt die Y-Koordinate der Maus auf der Spielebene an.- Returns:
- Die Y-Koordinate der Maus auf der Spielebene (in Meter)
- See Also:
-