5.6. Temporitzadors
Unint els diferents coneixements que fins ara hem adquirit podem desenvolupar programes que canviïn al llarg del temps. Mitjançant l’ús de variables i condicionals serem capaços de crear sketches que detectin que ha passat una quantitat determinada de temps i executar certes accions quan això passi. Podríem, per exemple, treure el noLoop() qque utilitzem en l’últim exemple i fer que obtinguem un valor aleatori per al farciment del cercle cada 2 segons mantenint l’sketch corrent a 60 frames per segon.
Per a això, podem fer ús del mètode millis() o també podem usar la variable pròpia del sistema frameCount. Totes dues maneres permeten portar el compte del temps transcorregut al nostre sketch però ho fan de manera diferent. La variable del sistema (com width o height) frameCount emmagatzema el nombre de frames actual en el qual ens trobem. Recordem que per defecte en P5 la velocitat d’actualització és de 60 fotogrames per segon (ho podem canviar si usem el mètode frameRate()), per la qual cosa frameCount augmentarà 60 unitats cada segon que transcorri.
El nombre de frames per segon (FPS) que podem aconseguir depèn de la capacitat del nostre ordinador per processar totes les instruccions que tenim al nostre sketch. Si li demanem que faci massa coses, no tindrà temps de fer-ho tot en 1/60 de segon i el frame rate baixa. Seixanta frames per segon és un estàndard en el món audiovisual (els televisors de 60 Hz, per exemple, que mostren 60 imatges per segon), però depenent del cas podria ser acceptable treballar a 30 FPS o fins i tot a 15 FPS (moltes pel·lícules d’animació usen 12 FPS). En el nostre cas, intentarem mantenir els 60 FPS sempre que puguem.
El mètode millis() és similar a utilitzar frameCount, però el que ens retorna millis() són els mil·lisegons (mil·lèsimes de segon) que han transcorregut des que vàrem iniciar l’sketch.
Font: elaboració pròpia.
Vegem un parell d’exemples senzills en els quals canviarem el color de fons aleatòriament cada segon utilitzant temporitzadors tant amb frameCount com amb millis():
Font: elaboració pròpia.
Ara veurem com podem fer el mateix però utilitzant millis() en lloc de frameCount:
Font: elaboració pròpia.