v4.x/User Input: Unterschied zwischen den Versionen
(→Tastencounter) |
(→Das Interface KeyListener) |
||
Zeile 58: | Zeile 58: | ||
=== Das Interface KeyListener === | === Das Interface KeyListener === | ||
− | Eine Klasse, die auf Tastatur-Input des Nutzers reagiert implementiert das Interface <code>ea.event.KeyListener</code>. | + | Eine Klasse, die auf Tastatur-Input des Nutzers reagiert implementiert das Interface [https://docs.engine-alpha.org/4.x/ea/event/KeyListener.html <code>ea.event.KeyListener</code>]. Die Engine nutzt das [https://de.wikipedia.org/wiki/Beobachter_(Entwurfsmuster) Observer-Entwurfsmuster] für alle Events. |
{{Achtung| | {{Achtung| | ||
Zeile 64: | Zeile 64: | ||
Achte darauf, dass du die Zeile <code>import ea.event.KeyListener</code> einbindest. | Achte darauf, dass du die Zeile <code>import ea.event.KeyListener</code> einbindest. | ||
}} | }} | ||
+ | |||
+ | Die Anmeldung des <code>KeyListener</code>-Interfaces hat automatisch stattgefunden, als der <code>CounterText</code> über <code>add(...)</code> angemeldet wurde. Ab dem Zeitpunkt wird die <code>onKeyDown(KeyEvent)</code>-Methode bei jedem Tastendruck aufgerufen. Zusätzlich hat das Interface eine optionale Methode zur Reaktion auf das Loslassen einer Taste. Du findest die Information in der [https://docs.engine-alpha.org/4.x/ea/event/KeyListener.html Dokumentation]. |
Version vom 5. Januar 2020, 00:18 Uhr
Dies ist ein Tutorial für die Engine Alpha 4.x. Diese funktioniert anders als die EDU-Version. Du findest eine Übersicht über alle Tutorials hier.
Inhalt
In diesem Tutorial:
- Reagierst du auf Tastatureingabe des Spielers
Tastencounter
Der folgende Code implementiert einen einfachen Zähler, der die Anzahl an gedrückten Tasten (vollkommen egal, welche) festhält.
import ea.Game;
import ea.Scene;
import ea.actor.Text;
import ea.event.KeyListener;
import java.awt.event.KeyEvent;
public class TastenCounter
extends Scene {
public TastenCounter() {
this.add(new CounterText());
}
public static void main(String[] args) {
Game.start(500, 200, new TastenCounter());
}
private class CounterText
extends Text
implements KeyListener {
private int counter = 0;
public CounterText() {
super("You pressed 0 keys.", 2);
this.setCenter(0,0);
}
@Override
public void onKeyDown(KeyEvent keyEvent) {
counter++;
this.setContent("You pressed " + counter + " keys.");
this.setCenter(0,0);
}
}
}
Das Interface KeyListener
Eine Klasse, die auf Tastatur-Input des Nutzers reagiert implementiert das Interface ea.event.KeyListener
. Die Engine nutzt das Observer-Entwurfsmuster für alle Events.
Dieses Interface hat denselben Namen wie das Standard-Java Interface java.awt.KeyListener
.
Achte darauf, dass du die Zeile import ea.event.KeyListener
einbindest.
Die Anmeldung des KeyListener
-Interfaces hat automatisch stattgefunden, als der CounterText
über add(...)
angemeldet wurde. Ab dem Zeitpunkt wird die onKeyDown(KeyEvent)
-Methode bei jedem Tastendruck aufgerufen. Zusätzlich hat das Interface eine optionale Methode zur Reaktion auf das Loslassen einer Taste. Du findest die Information in der Dokumentation.