(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.

Der Counter im Gange
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.