lundi 1 septembre 2008

Saisie au clavier et affichage

Voici donc l'une des façons dont on pourrait capturer les saisies au clavier :

PFont font; // instanciation de la fonte
String entree = ""; // on déclare la chaîne "entree" et on la vide

void setup() {
size(400,200); // définition de la surface de travail
font = loadFont("LucidaSans-24.vlw"); // chargement de la police
textFont(font); // déclaration de la police active
frameRate(10); // taux de traitement par seconde
}


void draw() {
text(entree,10,30); // on affiche le contenu de 'entree' aux coordonnées 10,30
if (keyPressed == true) { // si une touche a été pressée
entree = entree + key; // on ajoute sa valeur à la chaîne 'entree'
}
}

Le code est assez explicite. Vous aurez compris que :
text("un mot",10,30) affiche "un mot" (ou une chaîne) à 10 pixels du bord en abscisses et 30 pixels en ordonnées
keyPressed est une instruction réservée qui permet de tester une saisie au clavier
key est une variable réservée qui contient le dernier caractère saisi
une égalité se teste avec == comme en PHP

Une chose intéressante : frameRate() détermine le nombre d'images par seconde (rappelez vous que Processing est orienté graphique). Partant de là, cette fonction influe directement sur la précision de ce que le script "capte" au clavier.
Avec un frameRate(100), même la pression la plus brève renverra de nombreux caractères. En fait, autant de caractères que de centièmes de secondes durant lesquels la touche aura été enfoncée. Si en revanche vous diminuez le paramètre à 10 ou 5, il vous faudra exercer une pression plus longue pour que le script en tienne compte.