Tutorial: Tastatureingaben
Achtung! Ein grundlegendes Konzept ist hier Voraussetzung für dieses Tutorial. Falls du es noch nicht gemacht hast, solltest du vorher das Interface-Tutorial abschließen.
Ziel des Tutorials
Nach diesem Tutorial kannst du verschiedene Tastatureingaben verarbeiten, vor Allem:
- Tastendruck außerhalb der
Game
-Klasse - Tasten loslassen
- Anwendung: Tasten gedrückt halten.
Tasten-Interfaces der Engine
Die Engine hat 2 Interfaces für das Reatieren auf Tastendruck. Man kann das Herunterdrücken durch das Interface TastenReagierbar
beaobachten. Das Loslassen von Tasten kann man durch das Interfae TastenLosgelassenReagierbar
beobachten.
TastenReagierbar
|
TastenLosgelassenReagierbar
| |
---|---|---|
Reaktionsmethode | public void reagieren(int code) |
public void tasteLosgelassen(int code) |
Aufgerufen | Sobald eine Taste einmal heruntergedrückt wird. Diese Methode wird für die selbe Taste erst dann wieder aufgerufen, wenn diese Taste davor auch wieder losgelassen wurde. | Immer dann, wenn eine Taste losgelassen wird. Diese Methode wird für die selbe Taste erst dann wieder aufgerufen, wenn diese Taste davor auch wieder heruntergedrückt wurde. |
Parameter | Der Parameter code ist eine Zahl, die anzeigt, welche Taste gedrückt wurde. Welche Taste zu welcher Zahl gehört, lässt sich aus der Tastaturtabelle ablesen.
| |
Anmeldemethode | public void tastenReagierbarAnmelden(
TastenReagierbar t)
//Anmeldemethode in der Klasse Game!! |
public void tastenLosgelassenReagierbarAnmelden(
TastenLosgelassenReagierbar t)
//Anmeldemethode in der Klasse Game!! |
Die Klasse Game
implementiert bereits das Interface TastenReagierbar
. Das heißt, dass die
spielsteuernde Klasse dieses Interface nicht erneut implementieren kann!
Dieses Interface ist also nur in anderen Klassen zu verwenden. Im Grunde ist das Implementieren hiervon in den meisten Spielen nicht nötig, denn das Reagieren auf einfachen Tastendruck ist ja bereits in der Klasse Game realisiert. Dennoch kann es bei großen Projekten Sinn machen, das Reagieren des Tastendrucks auf mehrere Klassen zu verteilen.
Tasten gedrückt halten
Manchmal soll sich eine Spielfigur nicht nur bei einmaligem Tastendruck (bzw. loslassen) bewegen, sondern solange eine bestimmte Taste gedrückt ist.
Das lässt sich natürlich auch mit der Engine realisieren. Zunächst gibt es hierfür eine Tastendrucküberprüfung. Dies geschieht über eine Methode in der Klasse Game
:
<source> public boolean tasteGedrueckt(int code) <source>
Übergebe dieser Methode den Code der Taste, die du überprüfen willst (siehe Tastaturtabelle). Sie gibt true
zurück, wenn die entsprechende Taste gerade jetzt heruntergedrückt wird. Wird die Taste gerade nicht heruntergedrückt, ist das Ergebnis false
.