v4.x/Methoden ueberschreiben: Unterschied zwischen den Versionen
Mike (Diskussion | Beiträge) (→Überschreiben von Methoden) |
Mike (Diskussion | Beiträge) (→Vorübung) |
||
Zeile 38: | Zeile 38: | ||
Erstelle in deiner Entwicklungsumgebung interaktiv ein Objekt der Klasse Spiel. Nutze zunächst den Konstruktor ohne Parameter. Drücke nun auf deiner Computertastatur eine beliebige Taste. Was beobachtest du? | Erstelle in deiner Entwicklungsumgebung interaktiv ein Objekt der Klasse Spiel. Nutze zunächst den Konstruktor ohne Parameter. Drücke nun auf deiner Computertastatur eine beliebige Taste. Was beobachtest du? | ||
+ | |||
+ | [[Datei:Tastenkuerzel.png|mini|Konsolenausgabe]] | ||
Jedes mal wenn du eine Taste drückst erscheint auf der Konsole die Ausgabe "Taste ... wurde gedrückt". Die Klasse Spiel verfügt also über einen Mechanismus um automatisch auf Tastatur-Ereignisse zu reagieren. Wie Geht das? | Jedes mal wenn du eine Taste drückst erscheint auf der Konsole die Ausgabe "Taste ... wurde gedrückt". Die Klasse Spiel verfügt also über einen Mechanismus um automatisch auf Tastatur-Ereignisse zu reagieren. Wie Geht das? |
Version vom 6. Januar 2020, 16:31 Uhr
Dies ist ein Tutorial für die Edu-Variante der Engine Alpha 4.x. Eine Übersicht aller Edu-Tutorials siehst du hier.
Inhaltsverzeichnis
Inhalt
In diesem Tutorial:
- Lernst du das Verhalten von geerbten Methoden zu verändern:
- Du reagierst auf Tastatur-Ereignisse
- Du startest einen Ticker, der fortwährend Aufgaben automatisch erledigt
- Du verstehst wie Bewegungen dargestellt werden und reagierst dadurch exakt auf Kollisionen
Überschreiben von Methoden
Bisher hast du entweder vorhandene Methoden aufgerufen oder du hast in deinen Klassen selbst neue Methoden erstellt. Manchmal ist es nützlich, geerbte Methoden abzuändern. Manchmal möchtest du dem bisherigen Verhalten einfach nur etwas hinzufügen. Manchmal erbst du einen Mechanismus, z.B. Reaktion auf Maus oder Tastatur und nun willst du selbst festlegen, was z.B. bei deinem Mausklick passieren soll. In beiden Fällen überschreibt man die geerbte Methode, das heißt man erstellt eine Methode, die man genau in diesem Wortlaut und mit dieser Parameterliste schon geerbt hat.
public class MeineKlasse
extends Oberklasse
{
...
@Override
public nameDerGeerbtenMethode( ... Paramterliste ... )
{
// jetzt passiert was ich will
}
}
Reaktion auf Tastatur-Ereignisse
In der Edu-Engine gibt es eine Klasse SPIEL
die dir einige Mechanismen anbietet, wenn du von ihr erbst. Einer dieser Mechanismen ist die Fähigkeit, automatisch auf Tastatur-Eingaben reagieren zu können.
Vorübung
Erstelle in deiner Entwicklungsumgebung interaktiv ein Objekt der Klasse Spiel. Nutze zunächst den Konstruktor ohne Parameter. Drücke nun auf deiner Computertastatur eine beliebige Taste. Was beobachtest du?
Jedes mal wenn du eine Taste drückst erscheint auf der Konsole die Ausgabe "Taste ... wurde gedrückt". Die Klasse Spiel verfügt also über einen Mechanismus um automatisch auf Tastatur-Ereignisse zu reagieren. Wie Geht das?
Die Klasse SPIEL
verfügt über die Methode public void tasteReagieren(int tastenCode)
, die jedesmal automatisch aufgerufen wird, wenn ein Tastatur-Ereignis eintritt. Der Methode wird außerdem automatisch eine Zahl (der Tasten-Code) übergeben. Jede Taste hat eine andere Nummer und so kannst du anhand der Nummer wissen, welche Taste es war.
public class MeinSpiel
extends SPIEL
{
@Override
public void tasteReagieren(int tastenCode)
{
if ( tastenCode == 38 )
{
// Das geschieht bei Taste "Pfeil rauf"
}
else if ( tastenCode == ... )
{
...
}
}
}
Du musst eine Unterklasse von SPIEL
erstellen und darin die geerbte Methode public void tasteReagieren(int tastenCode)
überschreiben. Standardmäßig gibt sie auf der Konsole den bekannten Text aus. Du schreibst nun in ihrem Rumpf eine Fallunterscheidung anhand der übergebenen Nummer. So kannst du auf jede beliebige Taste individuell reagieren.
Der Tasten-Code
Jedesmal, wenn