Omet navegació

11.- Teclat, text pantalla i aleatorietat

Les funcions per al teclat keyPressed()keyReleased() permeten detectar quan està premuda una tecla al teclat i definir instruccions dins de cada funció.



teclat keyPressed()

















void
setup(){ size (400,400);//Mida de la pantalla background(138, 237, 129);//Color de fons String missatge= "Prem una tecla i solta-la"; text(missatge,10 , 30 ); } void draw() { // Cal la funció draw per fer anar les funcions keyPressed() i KeyReleased() } void keyPressed() {   //Tecla premuda fill(58, 52, 147);// color interior cercle stroke(198, 16, 71); //color vora cercle strokeWeight(10);//gruix cercle ellipse( width/2, height/2, 100, 100); } void keyReleased(){   //Tecla soltada fill(58, 52, 147);// color interior cercle stroke(130, 16, 71);//color vora cercle strokeWeight(10);//gruix cercle ellipse( width/2, height/2, 100, 100); }//Final programa

Si volem saber quina tecla ha estat premuda ho podem saber amb key i keyCode. «key» pot detectar tecles ASCII i
les tecles BACKSPACE, TAB, ENTER, RETURN, ESC, i DELETE. «KeyCode» pot detectar les tecles especials no ASCII com
les fletxes UP, DOWN, LEFT, RIGHT i les tecles ALT, CONTROL, SHIFT.
Mira l'exemple:


teclat key

















void
s
etup(){ //Mida de la pantalla size (400,400); } void draw() { background(37, 35, 67);//Color de fons String missatge= "Prem una tecla i solta-la"; text(missatge,10 , 30 ); text(key,45, 60); }//Final programa

També puc definir el tipus de font i la mida en lloc d'utilitzar l'estàndard.
Si vull emmagatzemar paraules en variables em cal anar concatenant lletres a una variable
intermitja i després passar-li el valor a la variable final. Mira l'exemple.


String textTeclejat ;//definim on desarem el text
String nom;// definim la variable nom
void setup()
{
size(600,300) ;//mida pantalla
background(255,255,255) ;//Fons de pantalla
textTeclejat = "" ;//inicialtzem la variable amb un blanc per traure-li el valor «null»

}
void draw()
{
PFont lameuaFont=createFont("Times new roman",20) ;//definim tipus font   textFont(lameuaFont,20);//canvie la mida a la font fill(0) ; text("Escriu el teu nom i prem després ENTER.",20,30) ; if (key==ENTER){ //Si premem «enter» em acabat de posar el nostre nom background(255,255,255) ;//Fons de pantalla nom=textTeclejat; text("el teu nom es",40 , 60);//escric un missatge text(nom,150,60); //escric una variable } } void keyReleased() { char teclaSeguent = key ;//alcem la darrera tecla teclejada textTeclejat+=teclaSeguent ;//concatenem lletres «textTeclejat=textTeclejat + teclaSeguent» }
Si volem capturar nombres enters o decimals amb el teclat amb Processing ens cal traure'ls el blanc amb que inicialitzem
la variable textTeclejat i això amb la funció «trim(" Hola amb blancs al principi")» que donarà per resultat
la cadena «"Hola amb blancs al principi"».

Si volem una mica d'aleatorietat al fer dibuixos cal utilitzar la funció ramdom(X) que
genera números enters entre cero i X. Mira l'exemple:
size(500,500);//mida pantalla for (int i = 0; i < 15; i++) {   float r = random(221);   float x = random(499);   float y = random(499);   fill(5, 2+r, 3+r);//color per omplir el cercle   ellipse( x, y, 20, 20);//Un cercle radi 20 situat de forma aleatòria } Cercles aleatòris

Els nombres generats amb random són float, si volem convertir-los a enter ho farem amb la funció «int( nombre_float);»
per exemple l'ordre «int a=int(random(100));» defineix un enter «a» i li assigna un valor aleatori entre 0 i 100.