HomeTortue graphiqueGPanelRobotique WebTigerPython
 Python - Online
keyevents
Deutsch   English   Français   

13. ÉVÉNEMENTS CLÉS

 

 

TU APPRENDS ICI...

 

comment tu peux influencer le déroulement du programme en appuyant sur les touches du clavier. Comme pour les événements de la souris, tu définis dans une fonction de rappel ce qui doit se passer lorsqu'une touche est enfoncée. Cette fonction de rappel n'est pas appelée par le programme, mais automatiquement par le système lorsqu'une touche est pressée.

 

 

EXEMPLES

 

Exemple 1: La Tortue dessine un pas lorsqu’une touche est pressée

Tu définis une fonction de rappel onKeyPressed(key). Celle-ci retourne le nom de la touche pressée et appelle la fonction step(), qui dessine un pas. La fonction de rappel est enregistrée via un paramètre de makeTurtle(). Cela indique au système qu'il doit appeler cette fonction à chaque pression d'une touche du clavier.

 

Programme:

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!")
► Copy to clipboard

Le nom de la touche pressée est affiché dans la fenêtre de sortie avec print(key). Teste aussi les touches directionnelles, tu en auras besoin dans l'exemple suivant.
 

 

Exemple 2: La Tortue est contrôlée avec les touches directionnelles.
La fonction de rappel onKeyPressed(key) retourne le nom de la touche pressée. Avec une structure if-elif, tu définis la direction du mouvement de la Tortue. Si l'une des flèches du clavier est pressée, la Tortue change de direction puis avance d’une courte distance. Pour accélérer le mouvement, sélectionne speed(-1).

 

Programme:

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!")
► Copy to clipboard

 

 

REMARQUE...

 

La fonction de rappel n'est pas appelée par ton programme, mais par le système lorsque tu appuies sur une touche. Tu peux afficher le nom des touches, notamment des touches spéciales, dans la fenêtre de sortie avec print(key).

La fonction de rappel est enregistrée en tant que paramètre de makeTurtle().

 

 

À FAIRE PAR TOI-MÊME

 

1.


Lorsqu'on appuie sur la touche “r”, une étoile rouge doit être dessinée, sur “g” une étoile verte et sur “b” une étoile bleue.

 

 

2.
Lorsqu'on appuie sur n'importe quelle touche, 1, 2, 3, 4, 5 ou 6 cercles remplis apparaissent au hasard.  

3.

Tu contrôles un système de feux de signalisation avec les touches “r”, “g” et “y”. Lorsque tu appuies sur “r”, le feu rouge apparaît, sur “y” le feu jaune et sur “g” le feu vert.