Vertiefung · etwa 60 Minuten · zu zweit
Die Stadt reagiert.
Maustaste drücken, Licht an. Untersuche, wie deine Stadt auf eine Eingabe reagieren kann.
1. Was passiert beim Loslassen?
Vermute zuerst. Starte dann die Abfrage und halte die Maustaste irgendwo im Stadtbild gedrückt. Lass wieder los.
Abfrage gestoppt
Maustaste losgelassen
Fenster dunkel
meineMaus.istGedrueckt()noch nicht geprüft
Das Licht ist aus. Die Stadt wartet noch nicht auf die Maus.
Auf dem Tablet: Bild berühren. Doppelklick oder Doppeltippen im Bild stoppt die Abfrage. „Zurücksetzen“ stoppt sie und zeichnet das Fenster wieder dunkel.
Ohne Maus ausprobieren
Starte die Abfrage. Halte dann diese Taste mit der Leertaste oder Eingabetaste gedrückt. Der Test verwendet den Punkt (350, 400) im Haus.
2. Eine Bedingung entscheidet
Prüfen Maustaste gedrückt?
Ja → Fenster gelb zeichnenNein → nichts zeichnen
Weiter kurz warten → erneut prüfen
if entscheidet, ob der eingerückte Aufruf ausgeführt wird. Die vorbereitete while-Schleife prüft immer wieder.
Noch keine Prüfung. Starte die Abfrage.
if (/* eure Bedingung */){ /* euer Methodenaufruf */}
Ergänze in BlueJ: Für den Einstieg wählst du die Bedingung meineMaus.istGedrueckt() und den passenden Aufruf schalteLichtAn();. Im freiwilligen Zusatz kommen die vier Hausgrenzen hinzu.
Gedrückt ist ein Zustand. Solange du die Taste im Bild hältst, wird die Bedingung wiederholt wahr. Gelb über Gelb bleibt gelb.
Beim Loslassen wird nichts mehr gezeichnet. Deshalb bleibt das Fenster hell.
Was macht der vorbereitete Rahmen?
- Ein altes Doppelklicksignal wird verworfen.
pruefeMaus()prüft eure Bedingung.meineUhr.warte(20)macht eine kurze Pause.- Die Abfrage wiederholt sich, bis ein Doppelklick sie beendet oder das Zeichenfenster geschlossen wird.
Der Doppelklick beendet nur die Abfrage. Er zeichnet das Fenster nicht dunkel. Ein erneuter Start lässt die vorhandene Zeichnung stehen.
Die Prüfung auf ein geschlossenes Fenster ist vorbereitete Java-Technik. Sie ist kein zusätzlicher SuM-Befehl, den ihr lernen müsst.
3. Deine Stadt bekommt eine Reaktion
- Wähle einen Gegenstand und eine sichtbare Veränderung. Zum Beispiel eine leuchtende Laterne oder einen farbigen Briefkasten.
- Baue das Codegerüst in die stillstehende Stadt ein. Verwende den eigenen Reaktionsstift; die Anleitung zeigt, welche Stellen du anpasst.
- Teste Gedrückthalten, Loslassen, Stoppen und erneutes Starten. Wird nur die geplante Stelle verändert?
- Erkläre im Code: Was löst eure Reaktion aus? Was habt ihr selbst entschieden? Notiert auch einen durchgeführten Test.
Wechselt nach dem ersten Test die Rollen. Beide sollen die Bedingung und die Wirkung erklären können.
Freiwilliger Zusatz
Nur das Haus soll reagieren
Eine Position liegt im Haus, wenn sie alle vier Grenzen einhält. Zum Testbereich gehört die Hauswand mit ihren Rändern. Das Dach gehört nicht dazu.
Oben links: (300, 350)
Unten rechts: (480, 500)
Links: x ≥ 300 · Rechts: x ≤ 480
Oben: y ≥ 350 · Unten: y ≤ 500
Ein Wechsel setzt die Übung zurück. Starte die Abfrage anschließend erneut.
Zum Stadtbild ↑Vier Grenzen prüfen
Halte die Maustaste außerhalb der Hauswand gedrückt. Ziehe dann in die Hauswand hinein.
x >= 300x <= 480y >= 350y <= 500
meineMaus.hPosition() liefert x. meineMaus.vPosition() liefert y.
&& bedeutet und: Alle verbundenen Bedingungen müssen wahr sein. Verbinde die vier Grenzen mit dem Zustand der Maustaste.
Prüfe deine Lösung: innerhalb, außerhalb, auf einem Rand und auf dem Dach. Erläutere ein Ergebnis, das dich zuerst überrascht hat.