Lernpfad:Einführung in Scratch/8
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 () kannst du das Skript wieder ausprobieren. Du wirst sehen, dass der Ball nun vom Schläger abprallt.
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
.
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.
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>