Aller au contenu
TONER KEBAB WIKI
Outils pour utilisateurs
S'identifier
Outils du site
Rechercher
Outils
Afficher la page
Anciennes révisions
Exportation ODT
Liens de retour
Derniers changements
Gestionnaire Multimédia
Plan du site
S'identifier
>
Derniers changements
Gestionnaire Multimédia
Plan du site
Piste:
wiki:tutoriels:processing:processing_4:processing_4
====== Comment gérer et dessiner des chaînes de caractères tapées "en live" sur le clavier, dans la fenêtre d'affichage ? ====== Ce programme est très largement inspiré de celui effectué par Alexandre Sauzedde en 2014 lors de son projet concernant un logo interactif. Damien MUTI. ===== Description l'algorithme ===== Dans le programme suivant, nous allons montrer comment afficher en temps réel une chaine de caractère tapée au clavier, sur la fenêtre d'affichage. Le programme suivant permet: * gérer les effacement de lettres * d'afficher une images à chaque nouvelle lettre écrite. L'image affichée affichée correspond à la dernière lettre de la chaine de caractère. Cette image correspond à la dernière lettre tapée ou à la dernièr elettre de la chaine de caractère lorsque la touche d'effacement " ← " a été tapée. ===== Présentation du programme ===== Le programme se compose de 3 sous-sketch (permettant une lecture plus simple) : * le sketch principal nommé "afficheChaineCaractere" qui contient //void setup()//, //void draw()//, //void keyPressed()//. * La classe lettre dont les attributs sont une lettre, et une image associée à le lettre. Cette classe ne comporte qu'une méthode: "lPictoAffiche" qui permet d'afficher l'image associée à la lettre considérée. * Une méthode nommée "testEtAfficheLettre" qui permet d'afficher l'image assocée à la dernière lettre de la chaine de caractère "name". __**ATTENTION**__: Avant de lancer le programme il faut impérativement placer dans le dossier "data" du sketch toutes les images associées aux lettres. Le code est le suivant: __**afficheChaineCaractere :**__ <code> PFont font; //------------------------------------plein écran à l'ouverture du programme boolean sketchFullScreen() { return true; } String name = new String(); // variables globales lettre a; lettre b; lettre c; lettre d; lettre e; lettre f; lettre g; lettre h; lettre i; lettre j; lettre k; lettre l; lettre m; lettre n; lettre o; lettre p; lettre q; lettre r; lettre s; lettre t; lettre u; lettre v; lettre w; lettre x; lettre y; lettre z; void setup(){ size(displayWidth, displayHeight); //size (400,400); noStroke(); a = new lettre ("a", loadImage("Chat.jpg")); b = new lettre ("b", loadImage("PICT3579.JPG")); c = new lettre ("c", loadImage("PICT3557.JPG")); d = new lettre ("d", loadImage("PICT3592.JPG")); e = new lettre ("e", loadImage("PICT3592.JPG")); f = new lettre ("f", loadImage("PICT3592.JPG")); g = new lettre ("g", loadImage("PICT3592.JPG")); h = new lettre ("h", loadImage("PICT3592.JPG")); i = new lettre ("i", loadImage("PICT3592.JPG")); j = new lettre ("j", loadImage("PICT3592.JPG")); k = new lettre ("k", loadImage("PICT3592.JPG")); l = new lettre ("l", loadImage("PICT3592.JPG")); m = new lettre ("m", loadImage("PICT3592.JPG")); n = new lettre ("n", loadImage("PICT3592.JPG")); o = new lettre ("o", loadImage("PICT3592.JPG")); p = new lettre ("p", loadImage("PICT3592.JPG")); q = new lettre ("q", loadImage("PICT3592.JPG")); r = new lettre ("r", loadImage("PICT3592.JPG")); s = new lettre ("s", loadImage("PICT3592.JPG")); t = new lettre ("t", loadImage("PICT3592.JPG")); u = new lettre ("u", loadImage("PICT3592.JPG")); v = new lettre ("v", loadImage("PICT3592.JPG")); w = new lettre ("w", loadImage("PICT3592.JPG")); x = new lettre ("x", loadImage("PICT3592.JPG")); y = new lettre ("y", loadImage("PICT3592.JPG")); z = new lettre ("z", loadImage("PICT3592.JPG")); // FONT font = loadFont ("DIN-Medium-48.vlw"); textFont (font, 25); background(255); // fond blanc } void draw(){ /// affiche l'image assocée à la dernière lettre de la chaine de caractère "name" testEtAfficheLettre(); // Font syle textSize(52); smooth(); pushStyle(); textAlign(CENTER); //fill(random(255), random(255), random(255), random(255)); Random Couleur fill(170); //text(name.toString(),width/2,640); text(name,width/2,640); popStyle(); } //------------------------------------méthode effacer void keyPressed(){ if(key == BACKSPACE){ if (name.length() > 0){ pushStyle(); fill(255); //rect(0,0,width,height); name = name.substring(0, name.length()-1); //effacer le dernier caractères (-1) popStyle(); } } else if(key != CODED) { name += key; } // affiche l'image associée à la derière lettre affichée } </code> __**class lettre:**__ <code> class lettre { /// attributs String nom; PImage lPicto; /// constructeur lettre(String name, PImage im) { nom = name; lPicto = im; } /// méthodes void lPictoAffiche(){ pushStyle(); //fill(255); //rect(0,0,width,height); //popStyle(); image(lPicto, 0, 0, width,height); } } </code> __**méthode testEtAfficheLettre :**__ <code> void testEtAfficheLettre(){ /// affiche l'image assocée à la dernière lettre de la chaine de caractère "name" if (name.length() > 0){ // sélection de la dernière lettre de la chaine de caractère char lastLettre = name.charAt(name.length()-1); if (lastLettre =='a' || lastLettre == 'A') { a.lPictoAffiche(); } if (lastLettre=='b' || lastLettre == 'B') { //fill(100, 60, 60) ; // remplissage rouge b.lPictoAffiche(); } if (lastLettre=='c' || lastLettre == 'C') { c.lPictoAffiche(); } if (lastLettre=='d' || lastLettre == 'D') { d.lPictoAffiche(); } if (lastLettre=='e' || lastLettre == 'E') { e.lPictoAffiche(); } if (lastLettre=='c' || lastLettre == 'F') { c.lPictoAffiche(); } if (lastLettre=='g' || lastLettre == 'G') { ////////////////////PROBLEME ??? d.lPictoAffiche(); } if (lastLettre=='h' || lastLettre == 'H') {////////////////////PROBLEME ??? e.lPictoAffiche(); } if (lastLettre=='i' || lastLettre == 'I') {////////////////////PROBLEME ??? f.lPictoAffiche(); } if (lastLettre=='j' || lastLettre == 'J') {////////////////////PROBLEME ??? g.lPictoAffiche(); } if (lastLettre=='k' || lastLettre == 'K') {////////////////////PROBLEME ??? h.lPictoAffiche(); } if (lastLettre=='l' || lastLettre == 'L') { i.lPictoAffiche();////////////////////PROBLEME ??? } if (lastLettre=='m' || lastLettre == 'M') { j.lPictoAffiche();////////////////////PROBLEME ??? } if (lastLettre=='n' || lastLettre == 'N') { k.lPictoAffiche();////////////////////PROBLEME ??? } if (lastLettre=='o' || lastLettre == 'O') { o.lPictoAffiche(); } if (lastLettre=='p' || lastLettre == 'P') { p.lPictoAffiche(); } if (lastLettre=='q' || lastLettre == 'Q') { q.lPictoAffiche(); } if (lastLettre=='r' || lastLettre == 'R') { r.lPictoAffiche(); } if (lastLettre=='s' || lastLettre == 'S') { s.lPictoAffiche(); } if (lastLettre=='t' || lastLettre == 'T') { t.lPictoAffiche(); } if (lastLettre=='u' || lastLettre == 'U') { u.lPictoAffiche(); } if (lastLettre=='v' || lastLettre == 'V') { v.lPictoAffiche(); } if (lastLettre=='w' || lastLettre == 'W') { w.lPictoAffiche(); } if (lastLettre=='x' || lastLettre == 'X') { x.lPictoAffiche(); } if (lastLettre=='y' || lastLettre == 'Y') { y.lPictoAffiche(); } if (lastLettre=='z' || lastLettre == 'Z') { z.lPictoAffiche(); } } else{ // si la chaine de caractère name est nulle (aucun caractère mémorisé) pushStyle(); fill(255); rect(0,0,width,height); popStyle(); } } </code>
wiki/tutoriels/processing/processing_4/processing_4.txt
· Dernière modification: 2016/05/23 11:41 (modification externe)
Outils de la page
Afficher la page
Anciennes révisions
Liens de retour
Exportation ODT
Haut de page