Beispiel und Aufgaben

"""
Erstellt eine Liste von Kreisen und bewegt die einzelnen Kreise
Sebastian Forster (fts)
28.11.2018
"""
from appJar import gui
import random

def kreis(x,y,r):
    return canvas.create_oval(x-r, y-r, x+r, y+r, width=3)

def bewegeKreise():
    for kreis in kreise: 
        canvas.move(kreis, 0.1, 2)

# Vorbereiten
app=gui()
app.setSize(800,600)
canvas = app.addCanvas("c1")

kreise = []

i = 0
while i < 100:
    x = random.randint(0, 800)
    y = random.randint(0, 600) 
    k = kreis(x, y, 5)
    kreise.append(k)
    i = i + 1

# Funktion für Animation registrieren
app.registerEvent(bewegeKreise)

# Intervall auf 10 ms setzen
app.setPollTime(100)

# Anzeigen
app.go()

Animiere die Schneeflocken:

  1. Erweitere dein Programm so, dass die Schneeflocken alle in einer Liste gespeichert werden
  2. registriere eine Animations-Funktion welche mit Hilfe einer for-in-Schleife die Liste der Schneeflocken durchläuft und jede Schneeflocke verschiebt
  3. Verbessere die Animation:
    • leichter Zufallsfaktor für Seitwärtsverschiebung
    • grössere Schneeflocken fallen etwas schneller (es entsteht ein 3D-Effekt: man hat das Gefühl die grösseren und schneller fallenden Schneeflocken sind weiter vorne)
    • schaffst du es, dass kleinere Schneeflocken hinter Bäumen und dem Haus herunterfallen und die grösseren davor?