Lernpfad:Einführung in Scratch/8

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Abprallen des Balls vom Schläger

Wähle den Ball aus, damit dessen Skriptbereich rechts erscheint und baue einen zweiten - vom ersten unabhängigen - Algorithmus nach folgender Anleitung.

Tipp: Die Bedingung für die falls <> dann :: stack Anweisung findest du in der Kategorie Fühlen.

Wenn die grüne Flagge angeklickt
wiederhole fortlaufend 
  falls <wird [paddle v] berührt?> dann 
    drehe dich nach rechts um (180) Grad
    warte (0.5) Sek.
  end
end

Mit einem Klick auf die grüne Flagge (Scratch Flagge.png) kannst du das Skript wieder ausprobieren. Du wirst sehen, dass der Ball nun vom Schläger abprallt.

Icon Info.png

Die meisten Programmiersprachen verwenden zur Notation von Kommazahlen kein Komma (,), sondern einen Punkt (.). Im obigen Algorithmus musst du also im warte ( ) Sek. Block 0.5 eingaben, statt 0,5.


Scratch verstehen

Die Richtung von Figuren

Du hast schon gelernt, dass jede Figur in Scratch eine x- und eine y-Koordinate besitzt. zusätzlich besitzt jede Figur eine Richtung.

  • "Oben" hat die Richtung 0.
  • "Rechts" hat die Richtung 90.
  • "Links" hat die Richtung -90.
  • "Unten" hat die Richtung 180.
Pong Richtung.gif

Alle Richtungen auf der linken Seite haben also negative Werte, alle auf der rechten positive.

Physikalisch korrektes Abprallen

Dreht sich der Ball einfach nur um 180 Grad, fliegt er in dieselbe Richtung zurück, aus der er gekommen ist. Physikalisch korrekt müsste er aber in eine andere Richtung fliegen. Physikalische Gesetze sind sehr komplex, aber vereinfacht gilt die Regel: Einfallswinkel gleich Ausfallswinkel.

Visualisierung von Einfalls- und passendem Ausfallswinkel (grün). Der orangene Pfeil verdeutlich eine Drehung um 180°.

Spielt ihr von oben nach unten, dann muss die Richtung also an einer vertikalen Linie gespiegelt werden. Dazu kann die Richtung einfach von 180° abgezogen werden. <scratchblocks2> setze Richtung auf ((180) - (Richtung)) </scratchblocks2> Spielt ihr von links nach rechts, dann muss die Spiegelung an einer horizontalen Linie erfolgen. Da die linke und rechte Seite unterschiedliche Vorzeichen haben, kann man einfach die Richtung mit -1 multiplizieren. <scratchblocks2> setze Richtung auf ((Richtung) * (-1)) </scratchblocks2>

Pong Abpraller.gif