Folgende Animation besteht aus 200 Bildern, die nacheinander abgespielt werden, wie ein Film.

Do Now!
Diskutieren Sie zu zweit: Wie könnte der Film aufgebaut sein, um diese Bewegung herzustellen?
Ein immer gleicher Ball liegt auf einer unsichtbaren, immer höher werdenden Grafik, z. B. ein transparentes Rechteck oder eine Ellipse der Breite 0.
Hier sehen Sie fünf Zwischenschritte, wobei der (weisse) Sockel zu Debugging-Zwecken sichtbar ist:
Lösungsgrafiken anzeigen
Dekomposition / Arbeitsschritte
Um diese Animation herzustellen, soll man folgende Schritte befolgen:
- (Farb-) Konstanten festlegen
- Framefunktion: Eine erste Funktion verfassen, die die Figur im momentanen Zustand zeichnet und diese als immer gleichgrosse Grafik zurückgibt, also eigentlich die einzelnen Frames eines Films.
- Listenfunktion: Eine zweite Funktion verfassen, die diese Figurpositionen (oder -konfigurationen) zu einer Liste von Grafiken vereint und zurückgibt.
- Liste anpassen: Liste verändern, so dass der Ball rauf UND runter geht.
- Abspielen: Mit dem Ausgabebefehl show_animation die Grafikliste als Film abspielen.
1. Konstanten
2. Einzelne Frames
Ergänzen Sie folgende Funktion, so dass genau die Titelbilder ausgegeben werden. pos_y
gibt die Distanz des Balls zum 'Boden' an.
Verstecken Sie oben noch das Positionsviereck, in der Animation ist es ja nicht sichtbar.
3. Filmfunktion
Erstellen Sie eine neue Filmfunktion, die 200 Bilder des (immer neu positionierten) Balls erstellt und diese in eine Liste von Grafiken einfügt. Diese Liste von Grafiken ist der Rückgabewert der Filmfunktion. So kann dann die Liste von Grafiken als Titelanimation abgespielt werden. Spicken Sie wenn nötig bei einer vorher besprochenen Animation.
Aufbau
- Filmfunktion, die eine Grösse entgegennimmt und eine Liste von Grafiken zurückgibt
-> list[Graphic]
- Akkumulator als leere Liste erstellen, z. B.
film
oder frame_liste
- in einer for-Schleife die Liste mit den Grafiken der sich bewegenden Figur füllen
- die Grafikliste zurückgeben
- mit show_animation die Filmfunktion aufrufen und erhaltene Grafikliste als Film abspielen
4. Listen verändern
Der Ball geht nun, soll aber auch wieder gleichmässig runterkommen. Dazu kehren wir die bereits existierende Grafikliste einfach umkehren und dann beide Listen aneinanderhängen. Sie kennen bereits die passenden Befehle aus der Aktivität Pythonlisten. Falls Sie diese Aktivität noch nicht gelöst haben, machen Sie das jetzt, sonst können Sie hier weiterfahren.
Liste umkehren Rufen Sie die Funktion steigender_Ball
und kehren die daraus resultierende Liste um.
Listen aneinander hängen Erstellen Sie nun in der Funktion ball_steigend_fallend
eine Liste, um eine Animation mit dem endlos steigenden und sinkenden Ball zu erzeugen. Rufen Sie dazu zweimal die Funktion steigender_Ball
, kehren eine davon um und hängen beide zusammen.

Toolbox
Fügen Sie diese Funktion Ihrer Toolbox hinzu.
Was Sie geübt und gelernt haben
Allgemein
- Sie können bestehende Programme sinnvoll abändern und erweitern.
- Sie können Probleme lösen, indem Sie diese in Teilprobleme zerlegen.
- Sie können Datentypen und -strukturen sinnvoll einsetzen.
- Sie können Funktionen in Ihre eigene Bibliothek aufnehmen.
Python
- Sie können Listen in Schleifen neue Elemente hinzufügen.
- Sie können Funktionen in Schleifen mit verschieden Argumenten, z. B.
height
für die Funktion rectangle
, aufrufen, um sich leicht ändernde Elemente zu erstellen.
- Sie können Listen umkehren und konkatenieren.
PyTamaro
- Sie können show_animation verwenden, um Listen von Grafiken als Animation auszugeben.