Joan Soler-Adillon || Programació: Conceptes
Despatx 234 || 935 421 484
----------------------------------------------------------------
----------------------------------------------------------------
PROGRAMACIÓN: CONCEPTOS || MASTER EN ARTES DIGITALES
Sección 6: Números aleatorios;
1.- Números aleatorios
Aunque por norma general no hay que abusar de ellos, los números aleatorios pueden ser muy útiles para dar un poco de "vida" a nuestros sketches. Por ejemplo, en el ejemplo de la pelota reboteadora (bouncing ball), siempre tenemos la misma velocidad X e Y, y esto produce al final que los movimientos sean siempre los mismos.
Una manera de cambiar esto es darles a estos valores velX y velY un valor aleatorio.
En Processing, para crear números aleatorios utilizamos la función random(). A random() le podemos enviar un o dos parámetros. Si le enviamos uno:
nos devolverá un número FLOAT entre 0 y 5. Si le enviamos 2 nos devolverá un número FLOAT entre el primero y el segundo:
¿Que significa "devuelve"? Lo veremos cuando toquemos funciones. Por ahora, hay que tener en cuenta que un random() lo asignaremos a un valor float así:
Es muy importante tener en cuenta que random(), en Processing, devuelve siempre floats. Así pues, debemos o bién utiliszarlo siempre con variables del tipo float(la solución fácil i recomendada), o sinó deberemos convertir el valor que nos dé random() a un int (la solución pelín más compleja que por ahora no vale la pena). En todo caso esto se haría con la función de conversión int().
Primero, un ejemplo simple de como utilizar un condicional junto con un random(). En cada iteración del proceso creamos un número aleatorio entre -1 y 1. Según sea mayor o menor a cero, vamos a hacer que este viento afecte a la dirección de la bola:
Source code: vent
//actualitzamos la posición según sople el viento:
if(viento > 0){
pos = pos+vel;
}
else { //oséase si el viento es menor o igual a 0:
pos = pos-vel;
}
He aquí un ejemplo de nuestra pelota reboteadora donde gracias a random(), en cada ejecución la pelota coge velocidades distintas. También puedes clicar para reiniciar la posición y velocidad de la bola. Mira mousePressed para ver cómo.:
Source code: bolaRev
----------------------------------------------------------------------------------------------------