Interagir avec le clavier
Dans cette activité, nous allons travailler sur le clavier. Le fonctionnement est très similaire à celui du mécanisme que nous avons vu pour la souris.
Fondamental :
PyProcessing propose 2 fonctions qui devront être complétées par le programmeur :
le code se trouvant dans la fonction keyPressed() est exécuté une fois quand l'utilisateur enfonce une touche
le code se trouvant dans la fonction keyReleased() est exécuté une fois quand une touche du clavier est relâchée
Ces 2 fonctions ne prennent aucun paramètre et ne retournent aucune valeur.
Exemple :
Saisissez, analysez et testez ce code
def setup():
size(200,200)
fill(0)
def draw():
background(240)
ellipse(100,100,50,50)
def keyPressed():
fill(255)
def keyReleased():
fill(0)
Attention :
pour pouvoir utiliser les 2 fonctions que nous venons de voir, il faut que la fonction draw() soit présente dans le programme (même si elle ne contient que le mot clé pass)
Fondamental : Connaître la touche enfoncée
Il est possible de détecter la touche qui a été frappée grâce à la variable keyCode. Cette variable keyCode est égale aux codes des touches Python que vous trouverez ici
Complément :
Par exemple pour savoir si c'est la touche "a" qui a été frappée, il suffira d'écrire :
def keyPressed():
if keyCode==65:
#mettre ici le code a exécuter quand la touche "a" est enfoncée
Exercice 23 : Le carré multicolore
Créez un programme permettant d'afficher un carré incolore au centre de la fenêtre.
En cas d'appui sur la touche r, le carré devient rouge.
En cas d'appui sur la touche v, le carré devient vert.
En cas d'appui sur la touche b, le carré devient bleu.
Ce même carré redevient incolore dès que la touche est relâchée.
Indication : On pourra utiliser le mot clé Python elif contraction de else et de if pour enchaîner les tests conditionnels.
Voir l'exemple de syntaxe ci-dessous
if a==1:
print("a vaut 1")
elif a==2:
print("a vaut 2")
else:
print("a vaut au moins 3")
Exercice 24 : Bouger la balle
Créez un programme permettant d'afficher une balle noire.
Cette balle pourra être déplacée à l'aide des flèches du clavier.
La balle ne devra pas pouvoir sortir de la fenêtre.
Indication : pour déclarer plusieurs variables globales en début de fonction, utiliser la syntaxe suivante :
global x,y