1. Déclencher - onkey()
¶
Avec la fonction input()
nous avons pu questionner l’utilisateur à un moment spécifique du programme. C’est utilisé pour demander une information spécifique à un moment précis.
Dans ce chapitre nous allons voir une autre façon d’utiliser les touches du clavier. Ici, appuyer sur une touche spécifique, à n’importe quel moment, va déclencher une action.
Dans ce chapitre nous découvrons comment utiliser le clavier de l’ordinateur pour interagir avec un programme. Nous allons voir que :
la fonction
onkey(f, 'a')
installe une fonction de rappelf()
,la fonction
f()
est appelée à chaque fois que la touchea
est appuyée,la fonction
listen()
démarre l’écoute des événements du clavier.
Fonction de rappel¶
En informatique, une fonction de rappel (callback en anglais) ou fonction de post-traitement est une fonction qui est passée en argument à une autre fonction. Cette dernière peut alors faire usage de cette fonction de rappel comme de n’importe quelle autre fonction, alors qu’elle ne la connaît pas par avance.
Avancer la tortue¶
Le programme suivant fait avancer la tortue à l’aide de la touche a
du clavier qui appelle une fonction de rappel.
La variable s
fait référence à l’objet Screen
qui possède les deux méthodes :
onkey(f, 'a')
pour installer une fonction de rappelf()
pour la touche'a'
,listen()
pour commencer à écouter les événements du clavier.
Deux lignes de texte sont affichées au début, pour que l’utilisateur sache qu’il doit d’abord cliquer dans la fenêtre de la tortue pour l’activer.
Exercice : Modifiez la fonction de rappel f()
pour que la tortue tourne en cercle.
Retourner à l’origine¶
La fonction home()
ramène la tortue à son origine. Nous avons changé le nom de la fonction de rappel f()
en avancer()
. C’est plus clair. La fonction home()
existe déjà, donc nous n’avons pas besoin de la définir.
Au lieu d’écrire les explications dans la console, nous allons les écrire directement dans la fenêtre de la tortue.
Exercice Ajoutez une fonction de rappel pour faire reculer la tortue.
Effacer la trace¶
Dans le prochain programme, nous ajoutons des touches supplémentaires pour les fonctions suivantes :
h
pour ramener la tortue à l’origine avechome()
,c
pour effacer la trace avecclear()
,r
pour effacer la trace et ramener la tortue à l’origine avecreset()
.
Le désavantage de ce programme, c’est que clear()
va aussi effacer le texte explicatif. Ça serait bien si ce texte était indépendant de la tortue qui bouge.
Tourner la tortue¶
Le programme suivant fait bouger la tortue à l’aide de 3 touches du clavier :
a
pour avancerd
pour tourner à droiteg
pour tourner à gauche
Exercice : Ajoutez une fonction de rappel pour faire reculer la tortue.
Les flèches¶
Les touches de flèche portent les noms Left
, Right
, Up
et Down
.
Nous pouvons utiliser les 4 flèches pour faire bouger la tortue.
↑
pour avancer↓
pour reculer←
pour tourner vers la gauche→
pour tourner vers la droite
Le référentiel utilisé se rapporte à la tortue. Quand la tortue est en face de nous, c’est difficile de la contrôler, car nous devons inverser les directions dans notre tête.
Exercice : Ajoutez les fonctions de rappel up()
et down()
pour monter et descendre le stylo.
Les touches WASD¶
Les jeux vidéos utilisent souvent les touches WASD pour déplacer le personnage du jeu (player) :
w
pour aller vers le hauta
pour aller vers la gauches
pour aller vers le basd
pour aller vers la droite
Cette fois nous utilisons un référentiel absolu, fixé au canevas. La tortue peut se déplacer dans les 4 directions haut, bas, gauche et droite.
Exercice : Ajoutez les fonctions de rappel home()
, clean()
et reset()
pour effacer la trace et ramener la tortue à l’origine.
Courbes en cercle¶
Appuyer sur la touche g
va dessiner un quart de cercle à gauche. Appuyer sur la touche d
va dessiner un quart de cercle vers la droite.
Dessiner une maison¶
Appuyer sur la touche m
va dessiner une maison.
Lever le stylo¶
Nous allons utiliser les touches u
et d
pour les fonctions
u
pour lever le stylo avecup()
,d
pour baisser le stylo avecdown()
.
Choisir l’épaisseur¶
Nous allons introduire des touches pour choisir l’épaisseur du trait.
1
pour un trait fin,2
pour un trait normal,3
pour un trait épais.
Exercice : Modifiez les épaisseurs.
Choisir la couleur¶
Nous allons introduire des touches pour choisir l’épaisseur du trait.
r
pour un trait rouge,v
pour un trait vert,b
pour un trait bleu.
Exercice : Modifiez les couleurs.
Écrire dans le canevas¶
Nous pouvons aussi utiliser les touches pour écrire dans le canevas de la tortue. Pour avancer la tortue avec la lettre, nous choisissons l’option move=True
Exercice¶
Snake¶
Utilisez une liste pour limiter le nombre de segments du serpent à 10.
Tetris¶
Les flèches gauche/droite permettent de déplacer le tétronimo. Programmez les touches haut/bas pour le tourner.