Loeffel-ei-loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Alois.bachinger (Diskussion | Beiträge)
Alois.bachinger (Diskussion | Beiträge)
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 16: Zeile 16:




* Dauerhaft neuen Punkt setzen und Abfragend er Neigung in X- und y-Richtung
* Dauerhaft neuen Punkt setzen und Abfrage der Neigung in X- und y-Richtung und Speicherung in accX und accY.
<pre id="01">
<pre id="01">
basic.forever(function () {
basic.forever(function () {
Zeile 26: Zeile 26:
</pre>
</pre>


* Vergleichen ob die Neigung kleiner oder größer ist als -150 (Linksneigung) und 150 (Rechtsneigung). Jeweils für x- und y-Neigung.
* Vergleichen ob die Neigung kleiner als -150 (Linksneigung) oder größer 150 (Rechtsneigung) ist. Das gilt jeweils auch für die y-Neigung (Vor- und Zurück-Neigung).
<pre id="01">
<pre id="01">
basic.forever(function () {
basic.forever(function () {
Zeile 42: Zeile 42:
</pre>
</pre>


* Einbau einer Pause, damti das System nicht bei jeder kleinen Bewegung reagiert.
* Einbau einer Pause, damit das System nicht bei jeder kleinen Bewegung reagiert. Der Bildschirm muss vor der Anzeige immer gelöscht werden, damit die Änderungen am Display deutlich sichtbar werden.
<pre id="01">
<pre id="01">
basic.forever(function () {
basic.forever(function () {
Zeile 50: Zeile 50:
</pre>
</pre>


* Das gesamte Beispiel nun zusammengesetzt
== Nun das gesamte Beispiel zusammengesetzt ==
 
<pre id="01">
<pre id="01">
let accY = 0
let accY = 0

Aktuelle Version vom 18. Januar 2022, 00:10 Uhr

Detailschritte

Die Lösung zu diesem Projekt wird hier in Teilen gezeigt:

  • Variable setzen
let accY = 0
let accX = 0
let x = 2
let y = 2
  • Zeichnen des zentralen Punkts auf der Matrix:
led.plot(2, 2)


  • Dauerhaft neuen Punkt setzen und Abfrage der Neigung in X- und y-Richtung und Speicherung in accX und accY.
basic.forever(function () {
    led.plot(x, y)
    accX = input.acceleration(Dimension.X)
    accY = input.acceleration(Dimension.Y)
})

  • Vergleichen ob die Neigung kleiner als -150 (Linksneigung) oder größer 150 (Rechtsneigung) ist. Das gilt jeweils auch für die y-Neigung (Vor- und Zurück-Neigung).
basic.forever(function () {
    if (accX < -150 && x > 0) {
        x += -1
    } else if (accX > 150 && x < 4) {
        x += 1
    }
    if (accY < -150 && y > 0) {
        y += -1
    } else if (accY > 150 && y < 4) {
        y += 1
    }
})
  • Einbau einer Pause, damit das System nicht bei jeder kleinen Bewegung reagiert. Der Bildschirm muss vor der Anzeige immer gelöscht werden, damit die Änderungen am Display deutlich sichtbar werden.
basic.forever(function () {
    basic.pause(500)
    basic.clearScreen()
})

Nun das gesamte Beispiel zusammengesetzt

let accY = 0
let accX = 0
let x = 2
let y = 2
basic.forever(function () {
    led.plot(x, y)
    accX = input.acceleration(Dimension.X)
    accY = input.acceleration(Dimension.Y)
    if (accX < -150 && x > 0) {
        x += -1
    } else if (accX > 150 && x < 4) {
        x += 1
    }
    if (accY < -150 && y > 0) {
        y += -1
    } else if (accY > 150 && y < 4) {
        y += 1
    }
    basic.pause(500)
    basic.clearScreen()
})