Dans cette activité, nous allons travailler sur le clavier.

Processing propose 2 fonctions qui devront être complétées par le programmeur :

Ces 2 fonctions ne prennent aucun paramètre et ne retournent aucune valeur.

À faire vous-même 3.1

Saisissez, analysez et testez ce code


void setup(){
  size(200,200);
  fill(0);
}
void draw(){
  background(255);
  ellipse(100,100,50,50);
}
void keyPressed(){
  fill(255);
}
void 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 est vide)

Il est possible de détecter la touche qui a été frappée grâce à la variable "key". Cette variable "key" est de type char.

À faire vous-même 3.2

Saisissez, analysez et testez ce code


void setup(){
  size(200,200);
}
void draw(){
}
void keyPressed(){
  println(key);
}
       

À faire vous-même 3.3

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 et 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.

Il faut cliquer dans la fenêtre ci-dessus pour que cet exemple fonctionne.


Il est aussi possible de détecter l'appui sur des touches qui ne sont pas des lettres ou des chiffres (par exemple, les "flèches", la touche "Entrée"...).

Voici un exemple simple qui vous explique comment procéder :


void setup(){
  size(200,200);
}
void draw(){
}
void keyPressed(){
  if (key==CODED){
    if (keyCode==UP){
      println("haut");
    }
    if (keyCode==DOWN){
      println("bas");
    }
    if (keyCode==LEFT){
      println("gauche");
    }
    if (keyCode==RIGHT){
      println("droite");
    }
  }
}
        

Au moment de l'appui sur une touche, il faut de tester si "key" est égale à "CODED". Si c'est le cas, nous utilisons la variable "keyCode". En plus des "flèches" que nous venons de voir, voici quelques autres touches :

Certaines touches ne sont pas des chiffres ou des lettres mais, pour autant, elles n'ont pas besoin de la méthode décrite ci-dessus. Leur code ascii suffit :

Voici un exemple :


void setup(){
  size(200,200);
}
void draw(){
}
void keyPressed(){
  if (key==10){
      println("touche Entrée");
    }
  if (key==32){
      println("touche Espace");
  }
  if (key==27){
    println("touche Echap");
  }
}
        

Attention, l'appui sur la touche "Echap" arrête l'application.

À faire vous-même 3.4

Créez un programme permettant d'afficher une "balle" noire (utilisation de la fonction "ellipse"). 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.

Il faut cliquer dans la fenêtre ci-dessus pour que cet exemple fonctionne.