Physikalisches Abprallen

In Scratch hast Du die Möglichkeit, mit einem einfachen Befehl einen Gegenstand vom Rand des Games abprallen zu lassen. Schwieriger wird es, wenn Du einen Abpraller innerhalb des Spielfelds erreichen möchtest (z.B. ein Ball, der von einer Hauswand zurückgeworfen wird).

Abprallen vom Bildrand
Fenster mit einzelnen Objekten drin

Um einen Abpraller zu programmieren, brauchst Du zuerst ein Objekt, von dem Dein Ball (oder ein anderer Gegenstand) abprallen soll. In meinem Beispiel habe ich 4 Wände gesetzt, oben unten links und rechts.

Wenn Der Ball nun auf eine Begrenzung trifft, muss er entsprechend die Richtung wechseln. Beim Auftreffen auf links oder rechts ändert sich die x-Richtung. Beim Auftreffen auf oben oder unten ändert sich die y-Richtung.

Um dies zu erreichen, musst Du folgenden Ablauf befolgen:

  1. Setze eine Variable für die x-Bewegung und eine Variable für die y-Bewegung. In untenstehenden Script heissen die Variablen „x“ und „y“.
  2. Setze eine Zufallszahl für die Variablen „x“ und „y“, falls Du möchtest, dass sich der Ball beliebig bewegt.
  3. Setze eine „wiederhole fortlaufend“ Schlaufe und ändere x und y um den entsprechenden Wert in den Variablen.
  4. Falls nun der Ball eine unserer Begrenzungen berührt, wechselt entsprechend die Richtung. Dies erreichst Du mit der Operation „setze x auf x*-1“ oder „setze y auf y*-1“. Dies ändert die entsprechende Richtung.

Im untenstehenden Script hat es zu Beginn die „falls“ Schlaufen „falls x=0“ und „falls y=0“ . Die sorgen dafür, dass verhindert wird, dass sich der Ball genau vertikal oder genau horizontal bewegt.

fertiges Abprall Script

Diese Methode kann z.B. in Pong verwendet werden, denn der Ball bei den Paddles wieder zurückgeworfen werden soll.