uebungen/Assignment_074/readme.md

37 lines
2.0 KiB
Markdown
Raw Normal View History

2023-05-23 09:08:43 +02:00
# Anonyme Klasse schreiben
2024-01-08 15:32:04 +01:00
[Musterlösung](solution/)
2023-05-23 09:08:43 +02:00
## Lernziel
Eine anonyme Klasse verwenden, um einen Event-Handler zu implementieren. Den Zugriff der anonymen Klasse auf Attribute der umgebenden Klasse und finale Parameter der Methode nutzen.
## Aufgabe
2024-01-20 16:43:48 +01:00
Gehen Sie in das Paket [pr2.lambda.anonymous](../sources/src/main/java/pr2/lambda/anonymous/).
2024-01-20 16:43:16 +01:00
2024-01-20 16:48:43 +01:00
Für diese Aufgabe müssen Sie das Gameframework einbinden. Sie finden es im `lib`-Ordner: [game_framework.jar](../sources/lib/game_framework.jar)
2024-01-20 16:47:25 +01:00
2023-05-23 09:08:43 +02:00
In dieser Aufgabe sollen Sie den Event-Handler für das Zerstören des Aliens als anonyme Klasse im Konstruktor von `GameBoard` realisieren. D.h. nicht mehr das Alien selbst reagiert auf das Klicken, sondern das `GameBoard` bekommt alle Klicks und überprüft, ob sich die Maus über dem Alien befindet.
Fügen Sie dem Konstruktor von `GameBoard` eine anonyme Klasse hinzu, die von `MouseAdapter` erbt. Überschreiben Sie in dieser Klasse die Methode `mousePressed` aus `MouseAdapter`.
In der `mousePressed`-Methode holen Sie die X- und Y-Koordinate aus dem `MouseEvent` und überprüfen Sie mit der Methode `intersects` von `Alien`, ob sich die Maus auch wirklich über dem Alien befindet. Wenn ja, rufen Sie die `explode`-Methode des Aliens auf.
Wenn sich der Mauszeiger nicht innerhalb des Aliens befindet, verschieben Sie das Alien (mit der Methode `setPosition`) an die Position des Mauszeigers.
Übergeben Sie die Instanz der anonymen Klasse der `addMouseListener`-Methode von `GameBoard`.
Lassen Sie das Programm laufen und überprüfen Sie, ob es das erwartete Verhalten zeigt.
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
2023-12-31 11:13:34 +01:00
4. Bauen Sie das Projekt mit dem Kommando `mvn`.