In den bisherigen Beispielen wurde mit dem Befehl makeTurtle() eine globale Turtle erzeugt, die keinen Namen braucht und direkt alle Befehle aus der Bibliothek gturtle verwenden kann. Die Biblothek gturtle eignet sich aber auch für die objekt orientierte Programmierung (OOP).
|
Man kann auch mehrere Turtleobjekte erzeugen: joe = Turtle() erzeugt Turtle joe in einem neuen Fenster. Damit ale Turtles im gleichen Fenster erscheinen, erzeugt man zuerst mit Im folgenden Beispiel bewegt sich die grüne Turtle joe 100 Schritte vorwärts und die rote Turtle luka führt die Befehle right(90) und forward(100) aus.
|
Beispiel 1: Mit zwei Turtles kann man lustige Anwendungen programmieren. Die Turtles joe und luka zeichnen abwechslungsweise Quadrate. Während die eine Turtle ein Quadrat zeichnet, muss die andere warten.
|
Erklärungen zum Programmcode:
def square(t) definiert die Funktion square() für eine beliebige Turtle t | |
square(joe) Aufruf der Funktion square für Turtle joe | |
square(luka) Aufruf der Funktion square für Turtle luka |
Beispiel 2: Drei Turtles zeichnen farbige Sterne. Während die eine Turtle ein Segment zeichnet, müssen die anderen warten. Man kann die drei Turtles auch gleichzeitig zeichnen lassen. Diese Programmiertechnik wird im Kapitel Threads erklärt.
|
Beispiel 3: Man kan für jede Turtle ein eigenes Bild verwenden. Der Pfad der Bilddatei wird beim Erzeugen der Turtle angegeben. Hier verwendet man die beiden Bilddateien beetle.gif und cuteturtle.gif, die sich in der TigerJython-Distribution befinden. Alle Bilder, die im Order "sprites" zur Verfügund stehen, sehen Sie in der TigerJython-IDE unter Hilfe-APLU Dokumentation-Bildbibliothek, oder in diesem Lehrgang unter dem Menüpunkt Dokumentation-Spritesbiblothek. Sie können auch eigene Bilder verwenden. Ihr Bild muss im gif- oder png- Format sein und einen transparenten Hintergrund haben. Sie können im beliebigen Ordner auf Ihrem Computer gespeichert sein. Im Programm geben Sie den Pfad der Bilddatei an: Unter MacOS z.B. |
Unter Windows können Sie die eigenen Bilder auch ein Unterverzeichnis sprites des Unterverzeichnises /bin des Installationsverzeichnisses speichern. Der Aufruf lautet dann:
makeTurtle("sprites/bild.gif")
# Tu9b.py from gturtle import * def draw(t): t.forward(100) t.dot(20) t.back(100) t.right(45) tf = TurtleFrame() laura = Turtle(tf, "sprites/beetle.gif") laura.setPenColor("red") laura.setPos(-140, 0) luka = Turtle(tf, "sprites/cuteturtle.gif") luka.setPos(140, 0) for i in range (8): draw(laura) draw(luka) |
Programmcode markieren
|
Anmerkung:
Auch wenn man nur eine Turtle verwendet, kann bei makeTurtle() eine Datei angegeben werden, welche als Turtlebild verwendet werden soll:
makeTurtle("sprites/beetle.gif")
|
Beispiel 4: Vier Turtles sind zu Beginn in den Ecken eines Quadrates positioniert. Bei jedem Schritt verfolgt jede Turtle die im Uhrzeigersinn benachbarte Turtle und zeichnet dabei eine Spur. Bevor sie erneut die Verfolgung aufnimmt, bewegt sie sich um eine kurze Strecke vorwärts. Damit das Zeichnen schneller erfolgt, wird speed auf -1 gesetzt.
|
Erklärungen zum Programmcode:
drawLine(a, b) zeichnet eine Linie von der aktuellen Position der Turtle a zur aktuellen Position der Turtle b |
Aufgaben Serie 9 |
1) |
Zwei Turtles zeichnen abwechslungsweise Treppenstufen.
|
2) |
Eine grüne, rote und blaue Turtle zeichnen miteinander die nebenstehenden Figuren Die Figuren sind aus einem Zick-Zack-Muster aufgebaut
|
3) |
Zwei Turtles zeichnen abwechslungsweise Quadrate. Die erste Turtle mit einer blauen, die zweite Turtle mit einer roten Farbe. |
4) |
Die Quadrate können mit fill(), fillToPoint() oder mit fillToHorizontal() ausgefüllt werden. |
5) |
Verwende für die beiden Turtles verschiedene Turtlebilder. Im tigerjython.jar stehen die Bilder beetle.gif, beetle1.gif, beetle2.gif und spider.png zur Verfügung. Du kannst aber euch eigene Bilder verwenden. Du musst diese im Unterverzeichnis sprites des Verzeichnisses, in dem sich dein Programm befindet, speichern. |