(created)
(kein Unterschied)

Version vom 13. April 2014, 21:48 Uhr


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

tutorial tastatur tastenreagierbar.png
tutorial tastatur tastenreagierbar.png

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.


Hier gibt es noch was zu tun: Bitte weitere Beschreibung des Problems hinzufügen!