Prima di affrontare questo argomento dal punto di vista informatico, bisogna fare una premessa dal punto di vista tecnico, non ha senso cercare di essere realmente veloci, molte volte basta far sentire la velocità, magari. Inoltre gli schermi hanno una frequenza di aggiornamento di 60Hz, cioè ogni 0.017 secondi, ogni variazione sotto questo tempo è ignorata. Quindi basterà aumentare l'angolo di rotazione ad ogni aggiornamento, invece di aumentare il numero degli aggiornamenti, per avere l'effetto desiderato.
Fatta questa premessa, passiamo al codice. Creiamo uno stack con un poligono, un pulsante e uno scroller che chiameremo angolo:
Per ruotarlo basta sfruttare la proprietà angle.
Scrivendo questo codice, possiamo ruotare il triangolo ad ogni fotogramma dell'angolo voluto:
on mouseUp
if the label of me is "START" then
set the label of me to "STOP"
ruotafigura
else
set the label of me to "START"
end if
end mouseUp
on ruotafigura
if the label of me is "START" then
exit ruotafigura
end if
put the thumbpos of scrollbar "angolo" into Dangolo
put the angle of graphic 1 into curangolo
put dangolo + curangolo into curangolo
set the angle of graphic 1 to curangolo
send ruotafigura to me in 0.017 sec #non ha senso scendere sotto questo valore
end ruotafigura
E questo è il risultato:
Notate come se la velocità supera quella del monitor, si creano strani effetti ottici stroboscopici (ad esempio che sembra ruotare all'indietro), come nella realtà.
Nessun commento:
Posta un commento