Loeffel-ei-loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Alois.bachinger (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Alois.bachinger (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 27: Zeile 27:




* Vergleichen ob die Neiugng kleiner oder größer ist als -150 (Linksneigung) und 150 (Rechtneigung). Jeweils für x- und y-Neigung.
* Vergleichen ob die Neigung kleiner oder größer ist als -150 (Linksneigung) und 150 (Rechtsneigung). Jeweils für x- und y-Neigung.
<pre id="01">
<pre id="01">
basic.forever(function () {
basic.forever(function () {
Zeile 51: Zeile 51:
</pre>
</pre>


 
* Das gesamte Beispiel nun zusammengesetzt


<pre id="01">
<pre id="01">

Version vom 17. Januar 2022, 23:29 Uhr

Detailschritte

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

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


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


  • Vergleichen ob die Neigung kleiner oder größer ist als -150 (Linksneigung) und 150 (Rechtsneigung). Jeweils für x- und y-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, damti das System nicht bei jeder kleinen Bewegung reagiert.
basic.forever(function () {
    basic.pause(500)
    basic.clearScreen()
})
  • Das gesamte Beispiel nun 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()
})