Class Game
java.lang.Object
de.pirckheimer_gymnasium.engine_pi.Game
Diese Klasse gibt Zugriff auf das aktuelle Spiel.
- Author:
- Michael Andonie, Niklas Keller
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic FrameUpdateListeneraddFrameUpdateListener(FrameUpdateListener listener) Registriert einen statischen, d.static voidaddKeyStrokeListener(KeyStrokeListener listener) Fügt einen statischKeyStrokeListenerhinzu, d.static voidaddMouseClickListener(MouseClickListener listener) static voidaddMouseScrollListener(MouseScrollListener listener) static voidaddSceneLaunchListener(SceneLaunchListener listener) static VectorconvertMousePosition(Scene scene, Point mousePosition) Finde die Position des Mausklicks auf der Zeichenebene.static voidexit()Beendet das Spiel.static SceneGibt die gerade aktive Szene an.static DefaultListenerGibt die momentan registrierten, grundlegenden Maus- und Tastatur-Steuermöglichkeiten zurück.static JukeboxGibt die statische, d.static VectorGibt die Position der Maus in der aktuellen Szene als Vektor in Meter relativ zum Koordinatensystem zurück.static Pointstatic booleanGibt an, ob die Figuren gezeichnet werden sollen.static VectorGibt die Fenstergröße in Pixel aus.static booleanisDebug()Gibt an, ob die Engine gerade im Debug-Modus ausgeführt wird.static booleanisKeyPressed(int keyCode) Gibt an, ob eine bestimmte Taste derzeit heruntergedrückt ist.static booleanGibt an, ob gerade die Engine läuft.static booleanGibt an, ob die laufende Instanz der Engine gerade verbose Output gibt.static voidMeldet die grundlegenden Maus- und Tastatur-Steuermöglichkeiten ab.static voidremoveFrameUpdateListener(FrameUpdateListener listener) Meldet einen statischen, d.static voidremoveKeyStrokeListener(KeyStrokeListener listener) Entfernt einen statischenKeyStrokeListenervom Objekt, d.static voidremoveMouseClickListener(MouseClickListener listener) static voidremoveMouseScrollListener(MouseScrollListener listener) static voidremoveSceneLaunchListener(SceneLaunchListener listener) static booleanrequestOkCancel(String message, String title) Öffnet ein modales Dialogfenster mit OK/Abbrechen-Buttons.static StringrequestStringInput(String message, String title) Öffnet ein modales Dialogfenster, in dem der Nutzer zur Eingabe von Text in einer Zeile aufgerufen wird.static booleanrequestYesNo(String message, String title) Öffnet ein modales Dialogfenster mit Ja/Nein-Buttons.static voidsetDebug(boolean value) Setzt, ob die Engine im Debug-Modus ausgeführt werden soll.static voidsetDefaultControl(DefaultListener control) Registriert grundlegende Maus- und Tastatur-Steuermöglichkeiten.static voidsetRenderActors(boolean value) Setzt, ob die Figuren gezeichnet werden sollen.static voidSetzt den Titel des Spielfensters.static voidsetVerbose(boolean value) Setzt, ob die aktuell laufende Instanz der Engine verbose Output geben soll.static voidsetWindowPosition(int x, int y) Setzt das Spielfenster an eine neue Position.static voidsetWindowSize(int width, int height) Setzt die Größe des Engine-Fensters.static voidshowMessage(String message, String title) Gibt eine Nachricht in einem modalen Dialogfenster aus.static Scenestart()Startet das Spiel in einem Fenster mit den Abmessungen 800x600 Pixel und erzeugt eine neue leere Szene.static SceneStartet das Spiel in einem Fenster mit der angegebenen Breite und Höhe.static SceneStartet das Spiel in einem Fenster mit den Abmessungen 800x600 Pixel.static voidSpeichert ein Bildschirmfoto des aktuellen Spielfensters in den Ordner~/engine-pi.static voidSchaltet je nach Zustand den Debug-Modus an oder aus.static voidstatic voidtransitionToScene(Scene scene) Wechselt die aktuelle Szene.
-
Constructor Details
-
Game
public Game()
-
-
Method Details
-
setTitle
Setzt den Titel des Spielfensters.- Parameters:
title- Titel des Spielfensters.
-
start
Startet das Spiel in einem Fenster mit der angegebenen Breite und Höhe.- Parameters:
width- Die Breite des Zeichenbereichs in Pixel.height- Die Höhe des Zeichenbereichs in Pixel.scene- Die Szene, mit der das Spiel gestartet wird.
-
start
Startet das Spiel in einem Fenster mit den Abmessungen 800x600 Pixel.- Parameters:
scene- Die Szene, mit der das Spiel gestartet wird.
-
start
Startet das Spiel in einem Fenster mit den Abmessungen 800x600 Pixel und erzeugt eine neue leere Szene.- Returns:
- Die erzeugte Szene, mit der das Spiel gestartet wurde.
-
transitionToScene
Wechselt die aktuelle Szene.- Parameters:
scene- Die Szene, zu der gewechselt werden soll. Wirdnullübergeben, wird eine neue Szene erstellt.
-
getDefaultControl
Gibt die momentan registrierten, grundlegenden Maus- und Tastatur-Steuermöglichkeiten zurück.- Returns:
- Die registrierten, grundlegenden Maus- und Tastatur-Steuermöglichkeiten.
-
setDefaultControl
Registriert grundlegende Maus- und Tastatur-Steuermöglichkeiten.- Parameters:
control- Die grundlegenden Maus- und Tastatur-Steuermöglichkeiten.
-
removeDefaultControl
public static void removeDefaultControl()Meldet die grundlegenden Maus- und Tastatur-Steuermöglichkeiten ab. -
addFrameUpdateListener
Registriert einen statischen, d. h. globalen Beobachter, der auf Bildaktualisierungen reagiert.- Parameters:
listener- Der Beobachter, der auf Bildaktualisierungen reagiert.- Returns:
- Der Rückgabewert ist mit dem Eingabeparameter identisch. Dieser
Wert kann dann mit dem Datentyp
FrameUpdateListenereiner lokalen Variablen bzw. einem Attribut zugewiesen werden und später zum Abmelden verwendet werden.
-
removeFrameUpdateListener
Meldet einen statischen, d. h. globalen Beobachter ab, der auf Bildaktualisierungen reagiert.- Parameters:
listener- Der Beobachter, der auf Bildaktualisierungen reagiert.
-
addKeyStrokeListener
Fügt einen statischKeyStrokeListenerhinzu, d. h. dieser KeyStrokeListener gilt global über das ganze Spiel und ist unabhängig von der aktuellen Szene.Der
KeyStrokeListenerkann auf mehrere Arten implementiert werden:- Als normale Klasse:
class MyKeyStrokelistener implements KeyStrokeListener { @Override public void onKeyDown(KeyEvent e) { // Code here } } obj.addKeyStrokeListener(new MyKeyStrokelistener()); - Als anonyme Klasse:
obj.addKeyStrokeListener(new KeyStrokeListener() { @Override public void onKeyDown(KeyEvent e) { // Code here } }); - Oder als Lambda-Ausdruck:
obj.addKeyStrokeListener(e -> { // Code here });
- Parameters:
listener- Ein Objekt der KlasseKeyStrokeListener.- See Also:
- Als normale Klasse:
-
removeKeyStrokeListener
Entfernt einen statischenKeyStrokeListenervom Objekt, d. h. einen KeyStrokeListener, der global für das ganze Spiel gilt.- Parameters:
listener- Ein Objekt der KlasseKeyStrokeListener.- See Also:
-
addMouseClickListener
-
removeMouseClickListener
-
addMouseScrollListener
-
removeMouseScrollListener
-
addSceneLaunchListener
-
removeSceneLaunchListener
-
getActiveScene
Gibt die gerade aktive Szene an.- Returns:
- Die gerade aktive Szene. Wurde das Spiel noch nicht gestartet,
ist die Rückgabe
null. - See Also:
-
isKeyPressed
Gibt an, ob eine bestimmte Taste derzeit heruntergedrückt ist.- Parameters:
keyCode- Die zu testende Taste als Key-Code (also z.B.KeyEvent.VK_D).- Returns:
true, wenn die zu testende Taste gerade heruntergedrückt ist, sonstfalse.- See Also:
-
isRunning
Gibt an, ob gerade die Engine läuft. Die Engine läuft, sobald es ein sichtbares Fenster gibt. Dieses läuft, sobaldstart(int, int, Scene)ausgeführt wurde.- Returns:
true, wenn das Spiel läuft, sonstfalse.- See Also:
-
setWindowSize
Setzt die Größe des Engine-Fensters.- Parameters:
width- Die neue Breite des Engine-Fensters in Pixel.height- Die neue Höhe des Engine-Fensters in Pixel.- See Also:
-
getWindowSize
Gibt die Fenstergröße in Pixel aus.- Returns:
- Ein Vektor-Objekt, dessen Höhe und Breite mit der Fensterhöhe und -breite übereinstimmt.
- See Also:
-
setWindowPosition
Setzt das Spielfenster an eine neue Position.Standardmäßig ist das Fenster mittig positioniert. Die Parameter x und y beziehen sich auf die linke obere Ecke der neuen Fenster-Position.
- Parameters:
x- Die x-Koordinate der linken oberen Ecke des Fensters in Pixel.y- Die y-Koordinate der linken oberen Ecke des Fensters in Pixel.- See Also:
-
exit
Beendet das Spiel.Das Fenster wird geschlossen, alle belegten Ressourcen werden freigegeben und die virtuelle Maschine wird beendet.
-
showMessage
Gibt eine Nachricht in einem modalen Dialogfenster aus. Der Dialog ist überJOptionPaneimplementiert.- Parameters:
message- Der Inhalt der Botschaft im Dialogfenster.title- Der Titel des Dialogfensters.
-
requestStringInput
Öffnet ein modales Dialogfenster, in dem der Nutzer zur Eingabe von Text in einer Zeile aufgerufen wird. Der Dialog ist überJOptionPaneimplementiert.- Parameters:
message- Der Inhalt der Botschaft im Dialogfenster.title- Der Titel des Dialogfensters.- Returns:
- Die Eingabe des Nutzers. Ist
null, wenn der Nutzer den Dialog abgebrochen hat.
-
requestYesNo
Öffnet ein modales Dialogfenster mit Ja/Nein-Buttons. Der Dialog ist überJOptionPaneimplementiert.- Parameters:
message- Der Inhalt der Botschaft im Dialogfenster.title- Der Titel des Dialogfensters.- Returns:
- Die Eingabe des Nutzers:
- Ja →
true - Nein →
false - Abbruch (= Dialog manuell schließen) →
false
- Ja →
-
requestOkCancel
Öffnet ein modales Dialogfenster mit OK/Abbrechen-Buttons. Der Dialog ist überJOptionPaneimplementiert.- Parameters:
message- Der Inhalt der Botschaft im Dialogfenster.title- Der Titel des Dialogfensters.- Returns:
- Die Eingabe des Nutzers:
- OK →
true - Abbrechen →
false - Abbruch (= Dialog manuell schließen) →
false
- OK →
-
convertMousePosition
Finde die Position des Mausklicks auf der Zeichenebene. Die Position wird relativ zum Ursprung desRenderPanel-Canvas angegeben. Die Mausklick-Position muss mit dem Zoom-Wert verrechnet werden. -
getMousePositionInFrame
-
getMousePosition
Gibt die Position der Maus in der aktuellen Szene als Vektor in Meter relativ zum Koordinatensystem zurück.Der Positions-Vektor ist in der Einheit Meter angegeben und bezieht sich auf einen Punkt des zu Grunde liegenden Koordinatensystems.
- Returns:
- Die Position der Maus in der aktuellen Szene als Vektor in Meter.
- See Also:
-
setDebug
Setzt, ob die Engine im Debug-Modus ausgeführt werden soll.- Parameters:
value- ist dieser Werttrue, wird die Engine ab sofort im Debug-Modus ausgeführt. Hierdurch werden mehr Informationen beim Ausführen der Engine angegeben, zum Beispiel ein grafisches Raster und mehr Logging-Informationen. Dies ist hilfreich für das Debugging des eigenen Spiels.- See Also:
-
isDebug
Gibt an, ob die Engine gerade im Debug-Modus ausgeführt wird.- Returns:
- ist dieser Wert
true, wird die Engine gerade im Debug-Modus ausgeführt. Sonst ist der Wertfalse. - See Also:
-
toggleDebug
public static void toggleDebug()Schaltet je nach Zustand den Debug-Modus an oder aus. Ist der Debug-Modus an, wird er ausgeschaltet, ist er aus so wird er angeschaltet. -
setRenderActors
Setzt, ob die Figuren gezeichnet werden sollen.- See Also:
-
getRenderActors
Gibt an, ob die Figuren gezeichnet werden sollen.- See Also:
-
toggleRenderActors
public static void toggleRenderActors()- See Also:
-
isVerbose
Gibt an, ob die laufende Instanz der Engine gerade verbose Output gibt.- Returns:
- ist dieser Wert
true, werden extrem ausführliche Logging-Informationen gespeichert. Sonst ist der Wertfalse. - See Also:
-
setVerbose
Setzt, ob die aktuell laufende Instanz der Engine verbose Output geben soll.- Parameters:
value- ist dieser Werttrue, so wird ein äußerst ausführliches Log über die Funktionalität der Engine geführt. Dies ist hauptsächlich für das Debugging an der Engine selbst notwendig.- See Also:
-
getJukebox
Gibt die statische, d. h. globale Instanz derJukeboxzurück, die Geräusche und Musik abspielen kann.- Returns:
- Eine Instanz der
Jukebox.
-
takeScreenshot
Speichert ein Bildschirmfoto des aktuellen Spielfensters in den Ordner~/engine-pi.
-