Package ea.edu

Class Spiel

java.lang.Object
ea.edu.Spiel

@API public class Spiel extends Object
Diese Klasse steuert die EDU-Version. Sie ist Schnittstelle für:
  • Szenen-Management
  • Listener-Management
Author:
Michael Andonie, Niklas Keller
  • Field Details

  • Constructor Details

    • Spiel

      public Spiel()
  • Method Details

    • parallel

      @API public static void parallel(Runnable runnable)
      Führt das übergebene Runnable parallel aus.

      Die einfachste Verwendung ist über eine Methodenreferenz: Spiel.parallel(this::schalteAmpel)

    • registriereFarbe

      @API public static void registriereFarbe(String string, Color color)
      Fügt eine String-awt/Color-Zuordnung zu.
      Parameters:
      string - Farbname (Groß-/Kleinschreibung egal)
      color - Entsprechendes Java-AWT-Color-Objekt
    • nenneFarben

      @API public static String[] nenneFarben()
      Returns:
      Listet alle verfügbaren Farbnamen.
    • konvertiereVonFarbname

      @Internal public 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.
      Parameters:
      farbname - Der Name der Farbe.
      Returns:
      Das Farbobjekt zum String; ist Color.black bei unzuordnembaren String
    • konvertiereZuFarbname

      @Internal public static String konvertiereZuFarbname(Color color)
      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-Breite
      hoehe - 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 Wert true, wird das Raster dargestellt. Ist er false, 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

      @API public void benenneAktiveSzene(String name)
      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

      @API public void setzeAktiveSzene(String name)
      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

      @API public String[] 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

      @API public void erzeugeNeueEbene(String ebenenName, int ebenenPosition)
      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

      @API public void setzeEbenenparallaxe(String ebenenName, double x, double y, double zoom)
    • setzeEbenenzeitverzerrung

      @API public void setzeEbenenzeitverzerrung(String ebenenName, double zeitverzerrung)
    • setzeAktiveEbene

      @API public void setzeAktiveEbene(String ebenenName)
    • setzeAktiveEbeneAufHauptebene

      @API public void setzeAktiveEbeneAufHauptebene()
    • nenneEbenennamenVonAktiverSzene

      @API public String[] 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

      @API public void setzeKamerafokus(EduActor fokus)
    • rotiereKamera

      @API public void rotiereKamera(double grad)
    • setzeKamerarotation

      @API public void setzeKamerarotation(double grad)
    • setzeSchwerkraft

      @API public void setzeSchwerkraft(double schwerkraft)
    • zeigeNachricht

      @API public void zeigeNachricht(String nachricht)
    • zeigeNachrichtMitBestaetigung

      @API public boolean zeigeNachrichtMitBestaetigung(String frage)
    • zeigeNachrichtMitJaNein

      @API public boolean zeigeNachrichtMitJaNein(String frage)
    • zeigeNachrichtMitEingabe

      @API public String zeigeNachrichtMitEingabe(String nachricht)
    • registriereMausKlickReagierbar

      @API public void registriereMausKlickReagierbar(MausKlickReagierbar mausKlickReagierbar)
      Meldet ein Objekt an, das ab sofort auf Mausklicks reagieren wird.
      Parameters:
      mausKlickReagierbar - Das anzumeldende Objekt.
    • entferneMausKlickReagierbar

      @API public void entferneMausKlickReagierbar(MausKlickReagierbar mausKlickReagierbar)
      Entfernt ein Objekt wieder, sodass es nicht mehr auf Mausklicks reagiert.
      Parameters:
      mausKlickReagierbar - Das abzumeldende Objekt.
    • registriereTastenReagierbar

      @API public void registriereTastenReagierbar(TastenReagierbar tastenReagierbar)
      Meldet ein Objekt an, das ab sofort auf Tasten reagieren wird.
      Parameters:
      tastenReagierbar - Das anzumeldende Objekt.
    • entferneTastenReagierbar

      @API public void entferneTastenReagierbar(TastenReagierbar tastenReagierbar)
      Entfernt ein Objekt wieder, sodass es nicht mehr auf Tasten reagiert.
      Parameters:
      tastenReagierbar - Das abzumeldende Objekt.
    • registriereTicker

      @API public void registriereTicker(double intervallInSekunden, Ticker ticker)
      Meldet ein Objekt zum Ticken an.
      Parameters:
      ticker - Das anzumeldende Objekt, dessen Tickermethode aufgerufen werden soll.
      Es MUSS eine Methode tick() haben.
      intervallInSekunden - Das Intervall in Sekunden, in dem das anzumeldende Objekt aufgerufen.
    • entferneTicker

      @API public void entferneTicker(Ticker ticker)
      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 Methode bildAktualisierungReagieren(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 Signatur bildAktualisierungReagieren(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

      @API public void registriereMausRadReagierbar(MausRadReagierbar mausRadReagierbar)
      Meldet einen MausRad-Listener an der aktiven Szene an.
      Parameters:
      mausRadReagierbar - Ein Objekt mit einer Methode mit Signatur mausRadReagieren(float)
      See Also:
    • entferneMausRadReagierbar

      @API public void entferneMausRadReagierbar(MausRadReagierbar mausRadReagierbar)
      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: