357
Eine andere Sorte Ereignis: Timer
Für das Löschen des Helptextes verwenden wir einfach die Methode
hel-
per.clear()
. Jetzt fehlen nur noch ganz wenige Ergänzungen. Ein Hin-
weis auf die Hilfe im Titel:
screen.setup(840, 600)
screen.title("SCRIBBLE - Das Malprogramm (Hilfe: F1)")
stift = Turtle()
Und die Bindung der beiden Funktionen an
(F1)
und
(Esc)
:
screen.onkeypress(show_help, "F1")
screen.onkeypress(helper.clear, "Escape")
screen.listen()
>
Führe diese Änderungen und Ergänzungen durch und teste die Hilfe-
Funktion.
>
Bringe den Kopfkommentar auf den neuesten Stand und speichere
eine Kopie von
scribble_arbeit.py
als
scribble10.py
ab und
eine weitere Kopie als
scribble.py
, unser vorläufiges Endprodukt.
Du kannst dir sicherlich vorstellen, dass es genug Möglichkeiten gibt, das
Programm noch zu verbessern. Vielleicht hast du demnächst Lust dazu.
Eine erste Aufgabe wäre beispielsweise, wie erwähnt, nach den Anleitun-
gen auf der Buch-Website eine Funktion zu implementieren, die die erstell-
ten Grafiken abspeichert.
Eine andere Sorte Ereignis: Timer
>
Starte IPI-T
URTLE
G
RAFIK
neu und mach mit!
>>> from turtle import Screen, Turtle
>>> screen = Screen()
>>> t = Turtle()
>>> def schritt():
t.forward(80)
t.left(90)
358
Ereignisgesteuerte Programme
Kapitel
13
>
Beobachte im Folgenden die Turtle:
>>> screen.ontimer(schritt, 1000)
>>> screen.ontimer(schritt, 1000)
>>> screen.ontimer(schritt, 1000)
>
Beobachte die Turtle ganz genau und geduldig.
>>> screen.ontimer(schritt, 5000)
Verstehst du das? Vielleicht mit Hilfe des Tooltipps in der IPI-Shell-
Abbildung?
ontimer()
ist eine Methode des
screen
-Objekts, die zwei Argumente
übernimmt. Das erste muss eine Funktion
fun()
ohne Parameter sein. Das
zweite ist eine Zeitangabe
t
in Millisekunden, also in Tausendstel Sekun-
den.
ontimer()
bewirkt einfach einen Aufruf von
fun()
, aber nicht so-
fort, sondern erst nach
t
Millisekunden. Bis dahin macht das Programm
eine Pause! (In der Zwischenzeit kann die CPU andere Programme bedie-
nen.) Deshalb musstest du nach dem letzten
ontimer()
-Aufruf mit
t = 5000
fünf Sekunden warten, bis die Turtle reagiert hat.
Das sieht zunächst nicht besonders aufregend aus: Wozu soll das gut sein?
Das wirst du gleich sehen, wenn wir die Funktion
schritt()
in der fol-
genden genialen Weise erweitern:
>>> t.reset()
>>> def schritt():
t.forward(80)
t.left(90)
screen.ontimer(schritt, 200)
>>> schritt()

Get Python für Kids now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.