Bearbeiten von Mausereignissen

Kein Spiel kommt ohne Interaktionen mit dem Spieler aus. In unserem Fall stehen dem Spieler zwei Möglichkeiten zur Verfügung, wie er in das Spielgeschehen eingreifen kann, nämlich mit der Maus oder mit der Tastatur seines Computers. In den nächsten zwei Kapiteln möchte ich zeigen, wie Maus- und Keyboardevents von Applets verarbeitet werden können. Wiederum ist dies in Applets leichter zu bewerkstelligen als in Konsolenanwendungen, daher kann man die von mir vorgestellten Methoden nicht eins zu eins in Konsolenanwendungen übertragen. In jedem guten Javabuch wird jedoch EventHandling ausführlich für Konsolenanwendungen behandelt (z. B. in dem Onlinebuch GoToJava: siehe Links), so dass man sich dieses Wissen leicht selbst aneignen kann.
Im folgenden möchte ich unser BallApplet so erweitern, dass der Ball auch dann seine Richtung ändert, wenn der Benutzer auf das Applet klickt.

Um dies zu verwirklichen muss man (in Applets!!) lediglich die Funktion mouseDown implementieren. Diese sollte in unserem Fall folgendermaßen aussehen:

Natürlich lassen sich nicht nur Mausklicks verarbeiten. Java stellt eine Reihe von Methoden zur Verfügung, die ich nun kurz vorstellen möchte. Sie alle können auf dieselbe Art und Weise wie oben gesehen in das Applet eingefügt werden:

  1. Mausklick:
    1. public boolean mouseDown (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maustaste gedrückt wird
    2. public boolean mouseUp (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maustaste losgelassen wird
    3. Mit der Variablen e.clickCount hat man zudem Zugriff auf die Anzahl der Clicks und kann somit auch Doppelklicks anders behandel als einfache Klicks
  2. Bewegen der Maus:
    1. public boolean mouseMove (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maus bewegt wird
    2. public boolean mouseDrag (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maus mit gedrückter Maustaste bewegt wird
  3. Mauspositionen:
    1. public boolean mouseEnter(Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn der Mauszeiger das Appletfeld "betritt"
    2. public boolean mouseExit (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn der Mauszeiger das Appletfeld verlässt

Mit den Variablen int x und int y hat man zudem Zugriff auf die Koordinaten, an denen das Mausevent passiert ist, was natürlich für viele Spiele äußerst wichtig ist. Außerdem muss man darauf achten, dass die Methoden explizit einen Rückgabewert true oder false verlangen, der nicht immer eine Bedeutung für die Behandlug des Ereignisses hat. Es muss jedoch immer ein boolscher Wert zurückgegeben werden!

SourceCode download
Applet ansehen

Nächstes Kapitel

Tastaturereignisse