Class Zeichenmaschine
- Direct Known Subclasses:
Brettmaschine
,Spielemaschine
Projekte der Zeichenmaschine sollten als Unterklasse implementiert werden. Die Klasse übernimmt die Initialisierung eines Programmfensters und der nötigen Komponenten.
-
Field Summary
Modifier and TypeFieldDescriptionprotected static ColorLayer
Ebene mit der Hintergrundfarbe.protected Zeichenleinwand
Die Leinwand, auf die alles gezeichnet wird.protected boolean
Ob der Mauszeiger derzeit sichtbar ist (bzw. sein sollte).protected static DrawingLayer
Zeichenebeneprotected Zeichenfenster
Das Zeichenfenster der Zeichenmaschinestatic final Object
Globaler Monitor, der einmal pro Frame vom Zeichenthread freigegeben wird.static final boolean
Gibt an, ob die Zeichenmaschine aus BlueJ heraus gestartet wurde.protected static ShapesLayer
FormenebeneFields inherited from class schule.ngb.zm.Constants
APP_NAME, APP_VERSION, APP_VERSION_MAJ, APP_VERSION_MIN, APP_VERSION_REV, ARROW, BEVEL, BLACK, BLUE, BOLD, BROWN, canvasHeight, canvasWidth, CENTER, CLOSED, cmouseX, cmouseY, CROSS, CYAN, DARKGRAY, DASHED, DEFAULT_ANIM_RUNTIME, DEFAULT_BACKGROUND, DEFAULT_BUFFER, DEFAULT_EASING, DEFAULT_FILLCOLOR, DEFAULT_FONTSIZE, DEFAULT_FPS, DEFAULT_HEIGHT, DEFAULT_STROKECOLOR, DEFAULT_STROKEWEIGHT, DEFAULT_WIDTH, delta, DOTTED, DOWN, DOWNLEFT, DOWNRIGHT, EAST, FILLED, framesPerSecond, GRAY, GREEN, HALF_PI, HAND, ITALIC, key, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_A, KEY_ALT, KEY_B, KEY_BACK_SPACE, KEY_C, KEY_CANCEL, KEY_CAPS_LOCK, KEY_CLEAR, KEY_COMMA, KEY_CONTROL, KEY_D, KEY_DOWN, KEY_E, KEY_END, KEY_ENTER, KEY_EQUALS, KEY_ESCAPE, KEY_F, KEY_G, KEY_H, KEY_HOME, KEY_I, KEY_J, KEY_K, KEY_L, KEY_LEFT, KEY_M, KEY_MINUS, KEY_N, KEY_O, KEY_P, KEY_PAGE_DOWN, KEY_PAGE_UP, KEY_PAUSE, KEY_PERIOD, KEY_Q, KEY_R, KEY_RIGHT, KEY_S, KEY_SEMICOLON, KEY_SHIFT, KEY_SLASH, KEY_SPACE, KEY_T, KEY_TAB, KEY_U, KEY_UP, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, keyCode, keyEvent, keyPressed, LEFT, LIGHTGRAY, LINES, LINUX, MACOS, MAGENTA, MIDDLE, MITER, MOUSE1, MOUSE2, MOUSE3, mouseButton, mouseEvent, mousePressed, mouseX, mouseY, MOVE, NOMOUSE, NORTH, NORTHEAST, NORTHWEST, OPEN, ORANGE, PI, PIE, PINK, PLAIN, pmouseX, pmouseY, PURPLE, QUARTER_PI, RED, RIGHT, ROUND, runtime, screenHeight, screenWidth, SOLID, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, tick, TWO_PI, UP, UPLEFT, UPRIGHT, WAIT, WEST, WHITE, WINDOWS, YELLOW
-
Constructor Summary
ConstructorDescriptionErstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Zeichenmaschine
(boolean run_once) Erstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Zeichenmaschine
(int width, int height, String title) Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Zeichenmaschine
(int width, int height, String title, boolean run_once) Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Zeichenmaschine
(String title) Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe.Zeichenmaschine
(String title, boolean run_once) Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe. -
Method Summary
Modifier and TypeMethodDescriptionfinal void
Fügt derZeichenleinwand
eine weitereEbene
hinzu.final void
Zentriert das Zeichenfenster auf dem aktuellen Bildschirm.final void
delay
(int ms) Pausiert die Schleife der Zeichenmaschine für die angegebene Anzahl an Millisekunden.void
draw()
draw()
wird einmal pro Frame aufgerufen.final void
exit()
Beendet die Zeichenmaschine vollständig.final void
exitNow()
void
final ColorLayer
Gibt dieEbene
mit der Hintergrundfarbe zurück.final Zeichenleinwand
Gibt die Zeichenleinwand zurück.final DrawingLayer
Gibt die Standard-Zeichenebene
zurück.final int
Gibt die aktuellen Frames pro Sekunde zurück.final int
Die Höhe derZeichenleinwand
.final BufferedImage
getImage()
Erstellt aus dem aktuellen Inhalt derZeichenleinwand
ein neuesBufferedImage
.final Layer
getLayer
(int index) Gibt dieEbene
am angegebenen Index zurück.final <LT extends Layer>
LTGibt die erste (unterste)Ebene
der angegebenen Klasse zurück.final int
Gibt die Anzahl derEbenen
in derZeichenleinwand
zurück.final ShapesLayer
Gibt die Standard-Formenebene
zurück.getState()
Gibt den aktuellenZustand
der Zeichenmaschine zurück.final int
getWidth()
Die Breite derZeichenleinwand
.final void
hide()
Versteckt das Zeichenfenster.final void
Macht den Mauszeiger unsichtbar.boolean
Prüft, ob das Zeichenfenster im Vollbild läuft.final boolean
isPaused()
Prüft, ob die Zeichenmaschine gerade pausiert ist.final boolean
final boolean
void
void
void
void
void
keyTyped()
void
void
void
void
void
void
void
void
void
void
void
void
void
final void
pause()
Pausiert die Ausführung vonupdate(double)
unddraw()
nach dem nächsten vollständigen Frame.final void
quit()
Beendet das Programm vollständig.final void
quit
(boolean exit) Beendet das Programm.final void
redraw()
Zeichnet dieZeichenleinwand
neu und zeigt den aktuellen Inhalt im Zeichenfenster an.final void
render()
Zeigt den aktuellen Inhalt derZeichenleinwand
im Zeichenfenster an, ohne vorherdraw()
aufzurufen.final void
resume()
Setzt die Ausführung der Zeichenmaschine fort, nachdem diese mitpause()
pausiert wurde.final void
Speichert den aktuellen Inhalt derZeichenleinwand
in einer Bilddatei auf der Festplatte.final void
Speichert den aktuellen Inhalt derZeichenleinwand
in einer Bilddatei im angegebenen Dateipfad auf der Festplatte.void
scheduleTask
(Runnable runnable, int delay) void
scheduleTask
(Runnable runnable, int delay, boolean concurrent) final void
setCursor
(int pPredefinedCursor) Setzt den Mauszeiger auf eines der vordefinierten Symbole.final void
Setzt den Mauszeiger auf das übergebenen Cursor-Objekt.final void
Ändert den Mauszeiger auf ein eigenes Bild.final void
setFramesPerSecond
(int pFramesPerSecond) Setzt die Anzahl an Frames pro Sekunde auf einen neuen Wert.final void
setFullscreen
(boolean pEnable) Aktiviert oder deaktiviert den Vollbildmodus für die Zeichenmaschine.final void
setSize
(int width, int height) Ändert die Größe derZeichenleinwand
.void
settings()
Die Settings werden einmal beim Erstellten der Zeichenmaschine aufgerufen.final void
Setzt den Titel des Zeichenfensters.void
setup()
Methode, die von Unterklassen überschrieben werden sollte, um die Zeichenmaschine vor dem Start zu konfigurieren.final void
show()
Zeigt das Zeichenfenster an.final void
Zeigt den Mauszeiger wieder an, falls er zuvorversteckt
wurde.void
shutdown()
teardown()
wird aufgerufen, sobald die Schleife des Hauptprogramms beendet wurde.final ImageLayer
snapshot()
Erstellt eine Momentaufnahme des aktuellen Inhalts derZeichenleinwand
und erstellt daraus eineBildebene
.final void
stop()
Stoppt die Zeichenmaschine.void
update
(double delta) update()
wird einmal pro Frame vordraw()
aufgerufen, um notwendige Aktualisierungen vorzunehmen.Methods inherited from class schule.ngb.zm.Constants
abs, arccos, arcsin, arctan, asBool, asBool, asBool, asBool, asBool, asBool, asBool, asBool, asBool, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asInt, asInt, asInt, asInt, asInt, asInt, asInt, asInt, asInt, avg, binary, ceil, choice, choice, choice, choice, color, color, color, color, colorHsb, colorHsl, cos, degrees, distance, floor, fromBinary, fromHex, getRandom, hex, interpolate, limit, limit, loadImage, map, max, max, min, min, morph, noise, noise, noise, noise, pow, radians, random, random, random, random, random, randomBool, randomBool, randomBool, randomColor, randomGaussian, randomNiceColor, round, setSeed, shuffle, shuffle, shuffle, shuffle, sign, sin, sqrt, sum, tan
-
Field Details
-
IN_BLUEJ
public static final boolean IN_BLUEJGibt an, ob die Zeichenmaschine aus BlueJ heraus gestartet wurde. -
canvas
Die Leinwand, auf die alles gezeichnet wird. Die Leinwand enthältEbenen
, die einzelne Zeichnungen enthalten. Die Inhalte aller Ebenen werden einmal pro Frame auf die Hauptleinwand übertragen. -
background
Ebene mit der Hintergrundfarbe. -
drawing
Zeichenebene -
shapes
Formenebene -
frame
Das Zeichenfenster der Zeichenmaschine -
cursorVisible
protected boolean cursorVisibleOb der Mauszeiger derzeit sichtbar ist (bzw. sein sollte). -
globalSyncLock
Globaler Monitor, der einmal pro Frame vom Zeichenthread freigegeben wird. Andere Threads könnenObject.wait()
auf dem Monitor aufrufen, um sich mit dem Zeichenthread zu synchronisieren. Derwait()
Aufruf sollte sich zur Sicherheit in einer Schleife befinden, die prüft, ob sich der AktuelleConstants.tick
erhöht hat.int lastTick = Constants.tick; // Do some work while( lastTick >= Constants.tick ) { synchronized( Zeichenmaschine.globalSyncLock ) { try { Zeichenmaschine.globalSyncLock.wait(); } catch( InterruptedException ex ) {} } } // Next frame has started
Die
FrameSynchronizedTask
implementiert eineTask
, die sich automatisch auf diese Wiese mit dem Zeichenthread synchronisiert.
-
-
Constructor Details
-
Zeichenmaschine
public Zeichenmaschine()Erstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Siehe
Zeichenmaschine(int, int, String, boolean)
für mehr Details. -
Zeichenmaschine
public Zeichenmaschine(boolean run_once) Erstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Siehe
Zeichenmaschine(int, int, String, boolean)
für mehr Details.- Parameters:
run_once
-true
beendet die Zeichenmaschine nach einem Aufruf vondraw()
.
-
Zeichenmaschine
Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe.Siehe
Zeichenmaschine(int, int, String, boolean)
für mehr Details.- Parameters:
title
- Der Titel, der oben im Fenster steht.
-
Zeichenmaschine
Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe.Siehe
Zeichenmaschine(int, int, String, boolean)
für mehr Details.- Parameters:
title
- Der Titel, der oben im Fenster steht.run_once
-true
beendet die Zeichenmaschine nach einem Aufruf vondraw()
.
-
Zeichenmaschine
Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Siehe
Zeichenmaschine(int, int, String, boolean)
für mehr Details.- Parameters:
width
- Breite derZeichenleinwand
.height
- Höhe derZeichenleinwand
.title
- Der Titel, der oben im Fenster steht.
-
Zeichenmaschine
Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Die Zeichenmaschine öffnet automatisch ein Fenster mit einer
Zeichenleinwand
, diewidth
Pixel breit undheight
Pixel hoch ist. Die Leinwand hat immer eine Mindestgröße von 100x100 Pixeln und kann nicht größer als der aktuelle Bildschirm werden. Das Fenster bekommt den angegebenen Titel.Falls
run_once
gleichfalse
ist, werdenupdate(double)
unddraw()
entsprechend derConstants.framesPerSecond
kontinuierlich aufgerufen. Falls das Programm als Unterklasse der Zeichenmaschine verfasst wird, dann kann auch,update(double)
überschrieben werden, damit die Maschine nicht automatisch beendet.- Parameters:
width
- Breite derZeichenleinwand
.height
- Höhe derZeichenleinwand
.title
- Der Titel, der oben im Fenster steht.run_once
-true
beendet die Zeichenmaschine nach einem Aufruf vondraw()
.
-
-
Method Details
-
centerFrame
public final void centerFrame()Zentriert das Zeichenfenster auf dem aktuellen Bildschirm. -
setFullscreen
public final void setFullscreen(boolean pEnable) Aktiviert oder deaktiviert den Vollbildmodus für die Zeichenmaschine.Der Vollbildmodus wird abhängig von
pEnable
entweder aktiviert oder deaktiviert. Wird die Zeichenmaschine in den Vollbildmodus versetzt, dann wird automatisch einKeyListener
aktiviert, der bei Betätigung der ESCAPE-Taste den Vollbildmodus verlässt. Wird der Vollbildmodus verlassen, wird die zuletzt gesetzte Fenstergröße wiederhergestellt.- Parameters:
pEnable
- Wenntrue
, wird der Vollbildmodus aktiviert, ansonsten deaktiviert.
-
isFullscreen
public boolean isFullscreen()Prüft, ob das Zeichenfenster im Vollbild läuft.- Returns:
true
, wenn sich das Fesnter im Vollbildmodus befindet,false
sonst.
-
getState
Gibt den aktuellenZustand
der Zeichenmaschine zurück.- Returns:
- Der Zustand der Zeichenmaschine.
-
show
public final void show()Zeigt das Zeichenfenster an. -
hide
public final void hide()Versteckt das Zeichenfenster. -
redraw
public final void redraw()Zeichnet dieZeichenleinwand
neu und zeigt den aktuellen Inhalt im Zeichenfenster an. -
render
public final void render()Zeigt den aktuellen Inhalt derZeichenleinwand
im Zeichenfenster an, ohne vorherdraw()
aufzurufen. -
pause
public final void pause()Pausiert die Ausführung vonupdate(double)
unddraw()
nach dem nächsten vollständigen Frame.Die Zeichenmaschine wechselt in den Zustand
Options.AppState.PAUSED
, sobald der aktuelle Frame beendet wurde. -
resume
public final void resume()Setzt die Ausführung der Zeichenmaschine fort, nachdem diese mitpause()
pausiert wurde. -
isPaused
public final boolean isPaused()Prüft, ob die Zeichenmaschine gerade pausiert ist.- Returns:
-
isTerminated
public final boolean isTerminated() -
isTerminating
public final boolean isTerminating() -
stop
public final void stop()Stoppt die Zeichenmaschine.Nachdem der aktuelle Frame gezeichnet wurde wechselt die Zeichenmaschine in den Zustand
Options.AppState.STOPPED
und ruftshutdown()
auf. Nachdemteardown()
ausgeführt wurde wechselt der Zustand zuOptions.AppState.TERMINATED
. Das Zeichenfenster bleibt weiter geöffnet.Die Zeichenmaschine reagiert in diesem Zustand weiter auf Eingaben, allerdings muss die Zeichnung nun manuell mit
redraw()
aktualisiert werden. -
exit
public final void exit() -
exitNow
public final void exitNow() -
quit
public final void quit()Beendet das Programm vollständig.Enspricht dem Aufruf
quit(true)
.- See Also:
-
quit
public final void quit(boolean exit) Beendet das Programm. Fallsexit
gleichtrue
ist, wird die komplette VM beendet.Die Methode sorgt nicht für ein ordnungsgemäßes herunterfahren und freigeben aller Ressourcen, da die Zeichenmaschine gegebenenfalls geöffnet bleiben und weitere Aufgaben erfüllen soll. Aufrufende Methoden sollten dies berücksichtigen.
Soll das Programm vollständig beendet werden, ist es ratsamer
exit()
zu verwenden.- Parameters:
exit
- Ob die VM beendet werden soll.- See Also:
-
setSize
public final void setSize(int width, int height) Ändert die Größe derZeichenleinwand
.- Parameters:
width
- Neue Breite der Zeichenleinwand.height
- Neue Höhe der Zeichenleinwand.- See Also:
-
getWidth
public final int getWidth()Die Breite derZeichenleinwand
.- Returns:
- Die Breite der
Zeichenleinwand
.
-
getHeight
public final int getHeight()Die Höhe derZeichenleinwand
.- Returns:
- Die Höhe der
Zeichenleinwand
.
-
setTitle
Setzt den Titel des Zeichenfensters.- Parameters:
title
- Der Titel, der oben im Zeichenfenster angezeigt wird.
-
getCanvas
Gibt die Zeichenleinwand zurück.- Returns:
- Die Zeichenleinwand.
-
addLayer
Fügt derZeichenleinwand
eine weitereEbene
hinzu.- Parameters:
layer
- Die neue Ebene.
-
getLayerCount
public final int getLayerCount()Gibt die Anzahl derEbenen
in derZeichenleinwand
zurück.- Returns:
- Die Anzahl der Ebenen.
-
getLayer
Gibt dieEbene
am angegebenen Index zurück. Gibt es keine Ebene mit diesem Index.- Parameters:
index
-- Returns:
-
getLayer
Gibt die erste (unterste)Ebene
der angegebenen Klasse zurück.DrawingLayer draw = getLayer(DrawingLayer.class);
- Type Parameters:
LT
-- Parameters:
layerClass
-- Returns:
-
getBackgroundLayer
Gibt dieEbene
mit der Hintergrundfarbe zurück. Gibt es keine solche Ebene, so wird eine erstellt und derZeichenleinwand
hinzugefügt.In der Regel sollte dies dieselbe Ebene sein wie
background
.- Returns:
- Die Hintergrundebene.
-
getDrawingLayer
Gibt die Standard-Zeichenebene
zurück. Gibt es keine solche Ebene, so wird eine erstellt und derZeichenleinwand
hinzugefügt.In der Regel sollte dies dieselbe Ebene sein wie
drawing
.- Returns:
- Die Zeichenebene.
-
getShapesLayer
Gibt die Standard-Formenebene
zurück. Gibt es keine solche Ebene, so wird eine erstellt und derZeichenleinwand
hinzugefügt.In der Regel sollte dies dieselbe Ebene sein wie
shapes
.- Returns:
- Die Formenebene.
-
getFramesPerSecond
public final int getFramesPerSecond()Gibt die aktuellen Frames pro Sekunde zurück.- Returns:
- Angepeilte Frames pro Sekunde
-
setFramesPerSecond
public final void setFramesPerSecond(int pFramesPerSecond) Setzt die Anzahl an Frames pro Sekunde auf einen neuen Wert.- Parameters:
pFramesPerSecond
- Neue FPS.
-
getImage
Erstellt aus dem aktuellen Inhalt derZeichenleinwand
ein neuesBufferedImage
. -
saveImage
public final void saveImage()Speichert den aktuellen Inhalt derZeichenleinwand
in einer Bilddatei auf der Festplatte. Zur Auswahl der Zieldatei wird dem Nutzer einJFileChooser
angezeigt. -
saveImage
Speichert den aktuellen Inhalt derZeichenleinwand
in einer Bilddatei im angegebenen Dateipfad auf der Festplatte. -
snapshot
Erstellt eine Momentaufnahme des aktuellen Inhalts derZeichenleinwand
und erstellt daraus eineBildebene
. Die Ebene wird automatisch derZeichenleinwand
vor dembackground
hinzugefügt.- Returns:
- Die neue Bildebene.
-
delay
public final void delay(int ms) Pausiert die Schleife der Zeichenmaschine für die angegebene Anzahl an Millisekunden.Falls
delay()
während eines Aufrufs vondraw()
aufgerufen wird, dann wird der aktuelle Zustand der Leinwand angezeigt.Die Methode übernimmt keine Garantie, dass die Wartezeit exakt
ms
Millisekunden beträgt. Sie kann etwas kürzer oder (für kurze Wartezeiten) etwas länger sein. Für zeitkritische Simulationen sollte daher die genaue Zeitdifferenz gemessen und berücksichtigt werden.- Parameters:
ms
- Wartezeit in Millisekunden.
-
hideCursor
public final void hideCursor()Macht den Mauszeiger unsichtbar.Nach dem Aufruf gilt
cursorVisible == false
.Der Aufruf von
hideCursor()
ist dasselbe wie der Aufruf vonsetCursor(null)
. -
showCursor
public final void showCursor()Zeigt den Mauszeiger wieder an, falls er zuvorversteckt
wurde.Nach dem Aufruf gilt
cursorVisible == true
.Der Aufruf von
hideCursor()
ist dasselbe wie der Aufruf vonsetCursor(Cursor.DEFAULT_CURSOR)
. -
setCursor
Ändert den Mauszeiger auf ein eigenes Bild.Das Bild darf die vom Betriebssystem vorgegebene Mindestgröße nicht überschreiten und kann aus einer beliebigen Quelle geladen werden, oder direkt im Programm erstellt werden. Die Koordinaten des Hotspot geben an, an welcher Stelle des Bildes sich die "Spitze" befindet. Die Koordinaten werden relativ zur oberen linken Ecke des Bildes angegeben.
- Parameters:
pCursorImage
- Ein Bild, das den Mauszeiger ersetzt.hotSpotX
- Relative x-Koordinate des Hotspots.hotSpotY
- Relative y-Koordinate des Hotspots.- See Also:
-
setCursor
public final void setCursor(int pPredefinedCursor) Setzt den Mauszeiger auf eines der vordefinierten Symbole.Die Konstanten der Klasse
Cursor
definieren 13 Standardzeiger, die durch angabe der Nummer geladen werden können.setCursor(Cursor.HAND_CURSOR);
- Parameters:
pPredefinedCursor
- Eine der Cursor-Konstanten.- See Also:
-
setCursor
Setzt den Mauszeiger auf das übergebenen Cursor-Objekt. WennpCursor
null
ist, wird der Mauszeiger unsichtbar gemacht (dies ist dasselbe wie der Aufruf vonhideCursor()
).- Parameters:
pCursor
- Ein Cursor-Objekt odernull
.Nach Aufruf der Methode kann über
cursorVisible
abgefragt werden, ob der Cursor zurzeit sichtbar ist oder nicht.
-
settings
public void settings()Die Settings werden einmal beim Erstellten der Zeichenmaschine aufgerufen.settings()
wird nur selten benötigt, wenn das Zeichenfenster -
setup
public void setup()Methode, die von Unterklassen überschrieben werden sollte, um die Zeichenmaschine vor dem Start zu konfigurieren. Hier können vorbereitende Befehle ausgeführt werden, die dieZeichenleinwand
zu initialisieren, neue Objekte instanziieren und Variablen initialisieren. -
update
public void update(double delta) update()
wird einmal pro Frame vordraw()
aufgerufen, um notwendige Aktualisierungen vorzunehmen. Im Gegensatz zudraw()
bekommtupdate()
zusätzlichConstants.delta
übergeben, um die Aktualisierungen abhängig von der echten Verzögerung zwischen zwei Frames zu berechnen.delta
wird in Sekunden angegeben. Um eine Form zum Beispiel um50
Pixel pro Sekunde inx
-Richtung zu bewegen, kann so vorgegangen werden:shape.move(50*delta, 0.0);
- Parameters:
delta
-
-
draw
public void draw()draw()
wird einmal pro Frame aufgerufen. Bei einerFramerate
von 60 also in etwa 60-Mal pro Sekunde. In derdraw
-Methode wird der Inhalt der Ebenen manipuliert und deren Inhalte gezeichnet. Am Ende des Frames werden alle Ebenen auf dieZeichenleinwand
übertragen.draw()
stellt die wichtigste Methode für eine Zeichenmaschine dar, da hier die Zeichnung des Programms erstellt wird. -
shutdown
public void shutdown()teardown()
wird aufgerufen, sobald die Schleife des Hauptprogramms beendet wurde. Dies passiert entweder nach dem ersten Durchlauf (wenn keine eigeneupdate(double)
erstellt wurde), nach dem Aufruf vonstop()
oder nachdem dasZeichenfenster
geschlossen wurde.In
teardown()
kann zum Beispiel der Abschlussbildschirm eines Spiels oder der Abspann einer Animation angezeigt werden, oder mitsaveImage()
die erstellte Zeichnung abgespeichert werden. -
scheduleTask
-
scheduleTask
-
mouseClicked
-
mouseClicked
public void mouseClicked() -
mousePressed
-
mousePressed
public void mousePressed() -
mouseReleased
-
mouseReleased
public void mouseReleased() -
mouseDragged
-
mouseDragged
public void mouseDragged() -
mouseMoved
-
mouseMoved
public void mouseMoved() -
mouseWheelMoved
-
mouseWheelMoved
public void mouseWheelMoved() -
keyTyped
-
keyTyped
public void keyTyped() -
keyPressed
-
keyPressed
public void keyPressed() -
keyReleased
-
keyReleased
public void keyReleased() -
fullscreenChanged
public void fullscreenChanged()
-