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) Registiert einen statischen, d.static voidaddKeyListener(KeyListener keyListener) Fügt einen statischKeyListenerhinzu, d.static VectorconvertMousePosition(Scene scene, Point mousePosition) static voidexit()Diese Methode beendet das Spiel.
Das heißt, dass das Fenster geschlossen, alle belegten Ressourcen freigegeben und auch die virtuelle Maschine von Java beendet wird.static SceneGibt die gerade aktive Szene an.static VectorGibt die Fenstergröße in Pixel aus.static ImagesContainerStellt den Zugriff auf denZwischenspeicher für Bild-Resourcenvom DatentypBufferedImagebereit.static JukeboxGibt die statische, d.static VectorGibt die Position der Maus in der aktuell angezeigten Scene aus.static Pointstatic SoundsContainerStellt den Zugriff auf denZwischenspeicher für Audio-Resourcenvom DatentypSoundbereit.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 voidremoveFrameUpdateListener(FrameUpdateListener listener) Meldet einen statischen, d.static voidremoveKeyListener(KeyListener keyListener) Entfernt einen statischenKeyListenervom Objekt, d.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 voidsetExitOnEsc(boolean value) Setzt, ob beim Drücken von Escape das Spiel beendet werden soll.static voidsetFramePosition(int x, int y) Setzt die Fenster-Position auf dem Bildschirm.static voidsetFrameSize(int width, int height) Setzt die Größe des Engine-Fensters.static voidSetzt den Titel des Spielfensters.static voidsetVerbose(boolean value) Setzt, ob die aktuell laufende Instanz der Engine verbose Output geben soll.static voidshowMessage(String message, String title) Gibt eine Nachricht in einem modalen Dialogfenster aus.static voidDies startet das Fenster und beginnt sämtliche internen Prozesse der Engine.static voidstatic voidtakeScreenshot(String filename) Rendert einen Screenshot des aktuellen Spielfensters und speichert das resultierende Bild in einer Datei.static 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.
-
setExitOnEsc
Setzt, ob beim Drücken von Escape das Spiel beendet werden soll.- Parameters:
value-true, falls ja, sonstfalse.
-
getFrameSizeInPixels
Gibt die Fenstergröße in Pixel aus.- Returns:
- Ein Vector-Objekt, dessen Höhe und Breite mit Fensterhöhe & -breite übereinstimmt.
-
start
Dies startet das Fenster und beginnt sämtliche internen Prozesse der Engine.- Parameters:
width- Die Breite des Zeichenbereichs in Pixel.height- Die Höhe des Zeichenbereichs in Pixel.scene- Szene, mit der das Spiel gestartet wird, z.B. das Menü.
-
start
-
getImages
Stellt den Zugriff auf denZwischenspeicher für Bild-Resourcenvom DatentypBufferedImagebereit.- Returns:
- Ein Zwischenspeicher für Bild-Resourcen vom Datentyp
BufferedImage.
-
getSounds
Stellt den Zugriff auf denZwischenspeicher für Audio-Resourcenvom DatentypSoundbereit.- Returns:
- Ein
Zwischenspeicher für Audio-Resourcenvom DatentypSound.
-
convertMousePosition
-
addFrameUpdateListener
Registiert einen statischen, d. h. globalen Beobachter, der auf Bildaktualisierungen reagiert.- Parameters:
listener- Der Beobachter, der auf Bildaktualisierungen reagiert.- Returns:
- Derselbe Beobachter als als Eingabeparameter angegeben. Kann
nützlich sein, wenn der Beobachter als Lambda-Ausdruck angegeben
wird. Dieser Ausdruck kann dann mit dem Datentyp
FrameUpdateListenereiner lokalen Variablen bzw. einem Attribut zugeweisen werden.
-
removeFrameUpdateListener
Meldet einen statischen, d. h. globalen Beobachter ab, der auf Bildaktualisierungen reagiert.- Parameters:
listener- Der Beobachter, der auf Bildaktualisierungen reagiert.
-
addKeyListener
Fügt einen statischKeyListenerhinzu, d. h. dieser KeyListener gilt global über das ganze Spiel und ist unabhängig von der aktuellen Szene. DerGame.KeyListenerkann auf mehrere Arten implementiert werden:- Als normale Klasse:
class MyKeylistener implements KeyListener { @Override public void onKeyDown(KeyEvent e) { // Code here } } obj.addKeyListener(new MyKeylistener()); - Als anonyme Klasse:
obj.addKeyListener(new KeyListener() { @Override public void onKeyDown(KeyEvent e) { // Code here } }); - Oder als Lambda-Ausdruck:
obj.addKeyListener(e -> { // Code here });
- Parameters:
keyListener- Ein Objekt der KlasseKeyListener.
- Als normale Klasse:
-
removeKeyListener
Entfernt einen statischenKeyListenervom Objekt, d. h. einen KeyListener, der global für das ganze Spiele gilt.- Parameters:
keyListener- Ein Objekt der KlasseKeyListener.
-
transitionToScene
Wechselt die aktuelle Szene.- Parameters:
scene- Die Szene, zu der gewechselt werden soll. Wirdnullübergeben, wird eine neue Szene erstellt.
-
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:
-
setFrameSize
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.
-
setFramePosition
Setzt die Fenster-Position auf dem Bildschirm.Standard ist mittig.
- Parameters:
x- X-Positiony- Y-Position
-
exit
Diese Methode beendet das Spiel.
Das heißt, dass das Fenster geschlossen, alle belegten Ressourcen freigegeben und auch die virtuelle Maschine von Java beendet wird. -
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 →
-
getMousePositionInFrame
-
getMousePositionInCurrentScene
Gibt die Position der Maus in der aktuell angezeigten Scene aus.- Returns:
- Die Position der Maus in der aktuellen Scene (unter Einbezug von Kamerazoom und -verschiebung).
-
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:
-
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:
-
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 Debugging am eigenen Spiel.- See Also:
-
getJukebox
Gibt die statische, d. h. globale Instanz derJukeboxzurück, die Geräusche und Musik abpielen kann.- Returns:
- Eine Instanze der
Jukebox.
-
takeScreenshot
Rendert einen Screenshot des aktuellen Spielfensters und speichert das resultierende Bild in einer Datei.- Parameters:
filename- Der Name der Datei, in der der Screenshot gespeichert werden soll.
-