En programación es imprescindible muchas veces el controlar cada cuánto tiempo se lanzan eventos o acciones. Para ello Processing utiliza una función que se llama:

millis()

Esta función devuelve el tiempo que ha transcurrido desde que se lanza el programa y lo da expresado en milisegundos. De esta manera, si invocamos a esta función dos veces separadas en el tiempo y restamos esos valores, obtendremos el tiempo transcurrido entre esos dos eventos.

Por hacer un simil, es igual a como trabajan los contadores de la electricidad que llega a nuestras viviendas. El contador empezó a contar cuando lo instalaron por primera vez, pero las lecturas de cada factura se hacen restando la lectura actual y la del último mes (de esa manera se calcula lo consumido ese último mes).

Veamos un ejemplo para entenderlo mejor:

//Se declara una variable que almacenará el tiempo actual (real) transcurrido
//desde que se activa el programa.
long tiempo = 0;

//Se declara una variable que almacenará el último valor de tiempo en el que se
//ejecutó la instrucción (delay).
long t_actualizado = 0;

//Se declara una variable que almacenará el tiempo que se desea que dure el retardo.
long t_retardo = 500; // retardo de medio segundo

void setup()
{
size(600,600);
background(0,0,0);
}

void draw()
{
float ancho = random(100);
//Se almacena el tiempo que ha transcurrido desde que se activó el programa.
tiempo = millis();

if( tiempo > t_actualizado + t_retardo)
{
fill(random(255),random(255),random(255));
ellipse(random(500),random(500),ancho,ancho);
//Se actualiza el tiempo que ha de transcurrir para el próximo delay.
t_actualizado = tiempo;

}
}

Vemos cómo van apareciendo circulos de ancho, posición, y color aleatorio cada medio segundo (500 ms):

Probad a modificar el valor de la variable que fija el retardo (t_retardo) y observar cómo la animación se acelera o se ralentiza.

Ejecución con un retardo de 100 ms:

Ejecución con un retardo de 1000 ms (1 segundo):

TAREAS

1.Realizar un programa que simule el movimiento indefinido de un  círculo de derecha a izquierda como la característica animación de luces del “Coche Fantástico”: