keyevents
Deutsch   English   

13. TASTATUREVENTS

 

 

DU LERNST HIER...

 

wie du den Programmablauf durch Drücken von Tastaturtasten beeinflussen kannst. Ähnlich wie bei den Mausevents, definierst du in einer Callbackfunktion was beim Drücken einer Tastaturtaste geschehen soll. Die Callbackfunktion wird nicht vom Programm, sondern beim Drücken einer Taste automatisch vom System aufgerufen.

 

 

MUSTERBEISPIELE

 

Beispiel 1: Beim Drücken einer beliebigen Taste zeichnet die Turtle einen Tritt.

Du definierst eine Callbackfunktion onKeyPressed(key) . Diese gibt den Name der gedrückten Taste zurück und ruft den Befehl step() auf, mit dem jeweils ein Tritt gezeichnet wird.

Über einen Parameter von makeTurtle() wird die Callbackfunktion registriert. So teilst du dem System mit, dass es diese Funktion bei jedem Tastaturklick aufrufen soll.

 

Programm:

from gturtle import *

def onKeyPressed(key):
    print(key)
    step()

def step():
    forward(20)
    right(90)
    forward(20)
    left(90)
    
makeTurtle(keyPressed = onKeyPressed)
addStatusBar(20)
setStatusText("Press any key!")
► In Zwischenablage kopieren

Die Bezeichnung der gedrückten Taste wird jeweils mit print(key) im Ausgabefenster angezeigt. Teste auch die Cursortasten. Ihre Namen wirst du im nächsten Beispiel brauchen.
 

 

Beispiel 2: Die Turtle wird mit Cursortasten gesteuert.
Die Callbackfunktion onKeyPressed(key) gibt den Namen der gedrückten Taste zurück. In einer if-elif-Struktur gibst du die Bewegungsrichtung der Turtle an. Wenn eine der Pfeiltaste gedrück wurde, wechselt die Turtle ihre Richtung und bewegt sich danach eine kurze Strecke vorwärts. Damit die Bewegung schneller erfolgt, wählst du speed(-1).

 

Programm:

from gturtle import *

def onKeyPressed(key):
    if key == "ArrowLeft":
        setHeading(-90)
    elif key == "ArrowRight":
        setHeading(90)
    elif key == "ArrowUp":
        setHeading(0)
    elif key == "ArrowDown":
        setHeading(180)
    forward(10)

makeTurtle(keyPressed = onKeyPressed)
speed(-1)
addStatusBar(20)
setStatusText("Use cursor keys to move me!")
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Die Callbackfunktion onKeyPressed(key) wird nicht von deinem Programm, sondern vom System aufgerufen, wenn du eine Taste gedrückt hast. Die Bezeichnung der Tasten, insbesondere der Spezialtasten kannst du mit print(key) im Ausgabenfester anzeigen.

Die Callbackfunktion wird als Parameter von makeTurtle() registriert.

 

 

ZUM SELBST LÖSEN

 

1.


Beim Drücken der Taste "r" soll ein roter, Taste "g" ein grüner und Taste "b" ein blauer Stern gezeichnet werden

 

 

2.
Beim Drücken einer beliebigen Taste erscheinen zufällig 1, 2, 3, 4, 5 oder 6 gefüllte Kreise.  

3.

Du steuerst mit den Tasten "r", "g" uns "y" eine Ampelanlage. Beim Drücken der Taste " r" erscheint die rote Ampel, bei g" die gelbe und bei "g" die grüne.