Loeffel-ei-loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Wechseln zu: Navigation, Suche
(Detailschritte)
Zeile 5: Zeile 5:
 
led.plot(2, 2)
 
led.plot(2, 2)
 
</pre>
 
</pre>
 +
 
* Variable setzen  
 
* Variable setzen  
 
<pre id="01">
 
<pre id="01">
Zeile 13: Zeile 14:
 
</pre>
 
</pre>
  
 +
 +
* Dauerhaft neuen Punkt setzen und Abfragend er Neigung in X- und y-Richtung
 +
<pre id="01">
 +
basic.forever(function () {
 +
    led.plot(x, y)
 +
    accX = input.acceleration(Dimension.X)
 +
    accY = input.acceleration(Dimension.Y)
 +
})
 +
 +
</pre>
 +
 +
 +
 +
* Vergleichen ob die Neiugng kleiner oder größer ist als -150 (Linksneigung) und 150 (Rechtneigung). Jeweils für x- und y-Neigung.
 +
<pre id="01">
 +
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
 +
    }
 +
})
 +
</pre>
 +
 +
* Einbau einer Pause, damti das System nicht bei jeder kleinen Bewegung reagiert.
 +
<pre id="01">
 +
basic.forever(function () {
 +
    basic.pause(500)
 +
    basic.clearScreen()
 +
})
 +
</pre>
  
  

Version vom 18. Januar 2022, 00:28 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 Neiugng kleiner oder größer ist als -150 (Linksneigung) und 150 (Rechtneigung). 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()
})


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()
})