Loeffel-ei-loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Wechseln zu: Navigation, Suche
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 18. Januar 2022, 00: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()
})