Joan Soler-Adillon || Programació: Conceptes
Despatx 52.803 (Campus de la comunicació, UPF) || 93 542 1238
----------------------------------------------------------------
----------------------------------------------------------------
PROGRAMACIÓN: CONCEPTOS || MASTER EN ARTES DIGITALES
Sección 5: Condicionales, parte 2
Los condicionales evaluan una condición (lo que va entre paréntesis) y ejecutan el código que escribimos entre las claves según si ésta se cumple o no.
En este otro ejemplo, el color de stroke y fill del cuadro cambia, vía condicionales, según la posición del mouse. Utilizamos el if, else (Está copiado aquí el código al que me refiero. Para ver el código completo podéis ir a Ver Applet, donde hay el código fuente de mismo):
Source code: quad1
//primero ligamos el FILL al eje horizontal del mouse if(mouseX < width/2){ //si el mouse está hacia la izquierda fill(255,0,0); //preparamos un fill rojo } else { //si está hacia la derecha fill(0,255,0); //preparamos un fill verde }//y segundo, hacemos que el STROKE dependa de eje vertical del mouse if(mouseY < height/2){ //si el mouse está hacia la izquierda stroke(255,255,0); //preparamos un stroke amarillo } else { //si está hacia la derecha stroke(0,0,255); //preparamos un stroke azul }
En el ejemplo que sigue, un if, else nos sirve para dibujar el globo, que estará o no creciendo, o bién un recuadro rojo si el globo ha explotado.
También en éste ejemplo vemos una nueva variable de sistema: mousePressed, que, como su nombre indica, nos dice si el mouse está siendo clicado o no. Pertenece al tipo de datos booleano.
Source code: pinxo
if(sz/2 > (width/2)-tamanoPincho){ //como ha tocado el pincho, dibujamos un recuadro rojo: fill(255,0,0); rect(0,0,width,height); } else { //como no lo toca, lo dibujamos //dibujamos el globo: //sin stroke: noStroke(); ellipse(width/2,height/2,sz,sz); println(sz); }
Y uno más: volvemos a nuestra queridísima bola reboteadora, pero ésta con obstáculo. Un simple if nos permite saber si la bola toca o no el obstáculo. Esto sí, con la inestimable ayuda de abs(), que convierte el qualquier valor en su valor absoluto (es decir, siempre positivo, como decía Louis).
Source code: bballObs
//COMPROBAMOS OBSTÁCULO: if(abs(posX-obstacleX) < sz/2){ velX = -velX; }
----------------------------------------------------------------------------------------------------