• LS 2.3: Sensoren implementieren

    • Ich kann ...

      Fachliche Kompetenzen:

      • Sensorwerte (z. B. x/y-Werte des Accelerometers) programmatisch auslesen,
      • die Bewegung eines Objekts durch Sensordaten steuern,
      • die Sensorlogik in der Fachschicht einer App umsetzen,
      • Sensorwerte gezielt auswerten und Bedingungen daraus ableiten,
      • die Auswirkungen der Sensorwerte in der Präsentationsschicht sichtbar machen (z. B. Ballbewegung, Punkteanzeige),
      • eine App so erweitern, dass bei Zielerreichung ein Spielende ausgelöst wird,
      • die Spieldauer berechnen und anzeigen.

      Überfachliche Kompetenzen:

      • beschreiben, wie Sensorsteuerung in realen Apps (z. B. Bewegungstracker, Spiele) genutzt wird.
    • Einstieg

      Bearbeiten Sie die interaktive Zuordnungsaufgabe

    • Aufgabe 1 – Implementieren der Zielzone im Spiel

      Versuch Einzelarbeit 

      Öffnen Sie das Projekt (ZIP-Archiv) und ergänzen Sie Folgendes:

      • Erstellen Sie ein ziel-Objekt mit Position (x, y) und size, z. B. { x: 100, y: 100, size: 60 }.
      • Übergeben Sie dieses ziel-Objekt als Prop an die Komponente GameScreen.
      • Testen Sie auf dem Gerät: Ist das Ziel sichtbar? Können Sie es mit dem Ball erreichen?

      Schreiben

      Notieren Sie in Ihrem Journal öffnen unter dem Titel „Ziel erreicht?“:

      • Wie haben Sie das Ziel im Code erstellt?
      • Wie wurde es sichtbar gemacht?
      • War es einfach, es mit dem Ball zu erreichen?

      Pfad A

      Sie benötigen Unterstützung? Bearbeiten Sie zuerst das Quiz - Zielzone erkennen.

    • Aufgabe 2 – Implementieren der Punktzählung bei Zieltreffer

      Schreiben Einzel

      Ergänzen Ihre App (ZIP-Archiv) so, dass jeder Treffer des Balls im Zielbereich einen Punkt ergibt.

      Vorgehensweise:

      • Erstellen Sie eine neue Variable für den Punktestand (z. B. punkte)
      • Prüfen Sie, ob der Ball das Ziel berührt
      • Zählen Sie einen Punkt, wenn ein neuer Treffer erfolgt

      Schreiben

      Notieren Sie in Ihrem Journal unter „Punkte zählen“:

      • Wie erkennen Sie, ob das Ziel erreicht wurde?
      • Wie verhindern Sie, dass mehrfach Punkte gezählt werden?

      A 

      Sie brauchen Hilfe? Bearbeiten Sie zuerst Quiz - Punktzählung bei Zieltreffer

    • Aufgabe 3 – Implementieren der Zielbewegung nach einem Treffer

      Schreiben Einzelarbeit

      Erweitern Sie Ihre App (ZIP-Archiv)so, dass das Ziel nach einem Treffer an einer neuen, zufälligen Position erscheint.

      Tipp

      Vorgehensweise:

      • Erstellen Sie eine Funktion, die eine zufällige Zielposition erzeugt.
      • Verwenden Sie z. B. Math.random() und setZiel({...}).
      • Rufen Sie diese Funktion auf, sobald das Ziel getroffen wurde.

      Schreiben

      Notieren Sie in Ihrem Journal unter „Ziel bewegt sich“:

      • Wie haben Sie die neue Position des Ziels berechnet?
      • Welche Schwierigkeiten traten beim Testen auf?

      Pfad A  

      Sie benötigen Unterstützung? Bearbeiten Sie zuerst Quiz - Ziel wechselt Position.

    • Aufgabe 4 – Implementieren des Spielendes mit Zeitmessung

      Versuch Einzelarbeit

      Erweitern Sie Ihre App (ZIP-Archiv) so, dass nach fünf erfolgreichen Zieltreffern das Spiel endet und die Spieldauer angezeigt wird.

      Tipp

      Vorgehensweise:

      • Speichern Sie beim Start der App die aktuelle Zeit (z. B. startzeit = Date.now()).
      • Beenden Sie das Spiel nach fünf Treffern (z. B. durch Ausblenden der Spielfläche oder Anzeige eines Endbildschirms).
      • Berechnen Sie die verstrichene Zeit in Sekunden: (Date.now() - startzeit) / 1000.
      • Zeigen Sie die benötigte Zeit am Spielende an.

      Schreiben

      Notieren Sie in Ihrem Journal unter „Spielende & Zeitmessung“:

      • Wie haben Sie das Spielende technisch umgesetzt?
      • Wie wurde die Spieldauer ermittelt und dargestellt?
      • Gab es Probleme bei der Zeitberechnung oder Anzeige?

      Pfad A  

      Sie benötigen Unterstützung? Bearbeiten Sie zuerst Quiz - Spielende und Zeitmessung.

    • Aufgabe 5: Anwenden der Sensorprogrammierung im Online-Test

      Test Einzelarbeit

      Testen Sie Ihr Wissen zur Programmierung mit Sensordaten (z. B. Accelerometer) in React Native. Im Online-Test beantworten Sie praxisnahe Fragen zur Zielerkennung, Punktevergabe, Zustandsspeicherung und Spieldauer.

      Schreiben

      Notieren Sie im Journal unter dem Titel „Sensorlogik reflektieren“:

      • Welche Codebestandteile werden zur Bewegungsauswertung genutzt?
      • Wie erkennt Ihre App, ob das Ziel getroffen wurde?
      • Wie könnte man die Logik verbessern oder erweitern?

      Tipp

      Wiederholen Sie den Test bei Bedarf, um Ihre Punktzahl zu verbessern oder Ihre Unsicherheiten zu klären.

    • Pfad C

      Aufgabe 6 – Entwickeln einer zusätzlichen Spielmechanik (Highscore oder Levelsystem)

      Versuch Einzelarbeit

      Erweitern Sie Ihre App (ZIP-Archiv) mit einer zusätzlichen Spielmechanik wie einem Highscore oder einem Levelsystem.

      Tipp

      Vorgehensweise:

      • Speichern Sie die schnellste Zeit lokal, z. B. mit AsyncStorage.
      • ODER: Erhöhen Sie die Schwierigkeit ab einer bestimmten Punktzahl.

      Schreiben

      Notieren Sie in Ihrem Journal unter „Mini-Challenge“:

      • Wie verändert sich der Spielcharakter durch diese Funktion?
      • Wie kann durch Gamification die Motivation gesteigert werden?
    • Reflexion