Un’animazione deve contenere un’istruzione rate() oppure sleep()
- la scena 3D viene aggiornata più volte al secondo (altrimenti verrebbe aggiornata solo alla fine dei calcoli)
- si rallenta l’esecuzione nel caso di calcoli/animazioni troppo veloci
- si gestiscono gli eventi della tastiera e del mouse
- si può intervenire con zoom e rotazione
rate()
RATE = 50
...
while(...):
rate(RATE)
...
L’esecuzione si interrompe in modo che passino 1/RATE secondi tra una chiamata e l’altra.
Per esempio se RATE=50 allora l’esecuzione si interromperà abbastanza per far passare 1/50 sec. = 0.02 sec.
Se il tempo è già passato allora non ci sarà nessuna interruzione.
Anche con computer con prestazioni molto diverse l’animazione sembrerà la stessa.
sleep()
SLEEP = 0.02
...
while(...):
sleep(SLEEP)
...
Osserva: SLEEP=1/RATE
Un’altra possibilità per avere lo stesso risultato.
La versione originale di time.sleep() rallenta l’esecuzione ma non ammette l’interazione…
clock()
La funzione si può utilizzare (…) per calcolare i secondi passati
t1 = clock()
...
t2 = clock()
delta = t2-t1 # Numero di secondi passati tra le due chiamate