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

void setup(){teclat keyPressed()
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);
}


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:
void setup(){ //Mida de la pantallateclat key 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); }










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.

PFont lameuaFont=createFont("Times new roman",20) ;//definim tipus font
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()
{
  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.