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

Die Zeichnung zeigt ein Haus mit einem dunklen Fenster. Die Schaltfläche unterhalb bietet einen Test ohne Zeigegerät.
1280 × 720 · (0, 0) oben linksMausposition: noch keine

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?
  1. Ein altes Doppelklicksignal wird verworfen.
  2. pruefeMaus() prüft eure Bedingung.
  3. meineUhr.warte(20) macht eine kurze Pause.
  4. 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

  1. Wähle einen Gegenstand und eine sichtbare Veränderung. Zum Beispiel eine leuchtende Laterne oder einen farbigen Briefkasten.
  2. Baue das Codegerüst in die stillstehende Stadt ein. Verwende den eigenen Reaktionsstift; die Anleitung zeigt, welche Stellen du anpasst.
  3. Teste Gedrückthalten, Loslassen, Stoppen und erneutes Starten. Wird nur die geplante Stelle verändert?
  4. 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.

Die vier Grenzen des HausesDie Hauswand beginnt oben links bei 300,350 und endet unten rechts bei 480,500. x wächst nach rechts; y wächst nach unten. Das Dach liegt oberhalb des Testbereichs.x →y ↓(300, 350)(480, 500)x ≥ 300x ≤ 480y ≥ 350y ≤ 500Dach: außerhalb

Oben links: (300, 350)
Unten rechts: (480, 500)

Links: x ≥ 300 · Rechts: x ≤ 480
Oben: y ≥ 350 · Unten: y ≤ 500

Die Skizze ist vergrößert. Nutzt im eigenen Projekt die Koordinaten eures Hauses.

Ein Wechsel setzt die Übung zurück. Starte die Abfrage anschließend erneut.

Zum Stadtbild ↑