=== 1. Unterschiede Python-Online-Editor vs. Tigerjython/Tigerjython-Online ===
Man muss etwas aufpassen, weil man in im Python-Online-Editor nicht alle Befehle zur Verfügung hat, die man in der lokalen Version von Tigerjython oder im Tigerjython-Online verwenden kann. Umgekehrt sind im Python-Online-Editor einige neue Befehle hinzugekommen. In der Turtle-Dokumentation von Pythononline sind die neuen Befehle mit einem Stern markiert (siehe [[http://www.pythononline.ch/turtle.php?inhalt_links=turtle/navigation.inc.php&inhalt_mitte=turtle/turtledoc.html#|hier]]). Dafür hat die Version "Tigerjython" zusätzliche Befehle, die in Pythononline nicht verfügbar sind (siehe [[http://example.com|hier]]). Wie z.B. ''makeColor''.
Ich werde im Folgenden Pythononline verwenden.
=== 2. Maus-Events registrieren ===
Maus-Ereignisse kann man direkt beim Befehl ''makeTurtle'' registieren. So sagt man dem Programm mit dem Befehl ''makeTurtle(mouseHit = onMouseHit)'', dass die Funktion ''onMouseHit'' aufgerufen werden soll, sobald die Maustaste gedrückt wird. Diese Funktion muss man selber schreiben und sie nimmt zwei Argumente, die x- und die y-Position der Stelle, an der man geklickt hat:
from gturtle import *
from random import randint
def dieMausWurdeGedrueckt(x,y):
msgDlg("Jupp, es wurde gedrückt!")
makeTurtle(mouseHit=dieMausWurdeGedrueckt)
=== 3. Tastatur-Events registrieren ===
Wenn man Tastatur-Ereignisse abfangen will, so ist die Methode bei Python-Online und bei Tigerjython (online oder lokal) etwas unterschiedlich.
== a) Bei Pythononline ==
Bei Python-Online gibt man die Tastaturbefehle ausserhalb von ''makeTurtle'' an:
from gturtle import *
def enterPressed():
msgDlg("Enter wurde gedrückt"=)
makeTurtle()
setPenColor("blue")
registerKey('enter', enterPressed)
== b) Bei Tigerjython (online oder lokal) ==
Hier gibt man die Tastatur-Ereignisse wie die Maus-Ereignisse ein, d.h. direkt bei ''makeTurtle'':
from gturtle import *
LEFT = 37
RIGHT = 39
UP = 38
DOWN = 40
def onKeyPressed(key):
if key == LEFT:
setHeading(-90)
elif key == RIGHT:
setHeading(90)
elif key == UP:
setHeading(0)
elif key == DOWN:
setHeading(180)
makeTurtle(keyPressed = onKeyPressed)
wrap()
while True:
forward(10)
=== Aufgabe ===
Schreibe ein Programm, welches bei einem Mausklick einen Kreis mit zufälliger Grösse und einer zufälligen Farbe an der geklickten Stelle zeichnet. Wenn man die Enter-Taste drückt, soll das Bild gelöscht werden.