boolean grabando; //variable que indica el estado int[] x,y; //vectores donde se cargan las posiciones del mouse int cont,i; int contColor; void setup(){ size(400,400); noStroke(); colorMode(HSB); grabando = false; //se inicia en modo reproducción x = new int[100000]; y = new int[100000]; cont = 0; i = 0; contColor = 0; } void draw(){ contColor = (contColor+1) % 256; //incrementa cíclicamente de 0 a 255 fill(0,0,0,10); //pinta el fondo de color rect(0,0,width,height);//negro transparente fill(contColor,255,255,60); //pone el color de relleno de los círculos grabando = mousePressed; //si el mouse está siendo presionado pasa a modo grabación if(grabando){ ellipse(mouseX,mouseY,10,10); x[cont]=mouseX;//guarda un nuevo dato y[cont]=mouseY; cont++; //incrementa el puntero } ellipse(x[i],y[i],50,50); i++; //con esta variable recorre el reproductor if(i>=cont){ i=0; } }