Per esempio, immaginiamo di dover fare un gioco dove bisogna muovere una macchina usando i tasti freccia della tastiera e che va spostata relativamente a dove punta il muso della macchina, come nelle macchinine telecomandate.
Prima di tutto mettiamo l'immagine della macchina:
Per ruotarla basta cambiare la proprietà angle dell'immagine.
Finchè rimane in verticale è facile dare le coordinate per spostarla, ma se la inclinassimo di 45°, come dobbiamo scrivere il codice?
Conoscendo un minimo di trigonometria, per muoverla di 5 pixel alla volta, tutto il codice è il seguente:
on arrowkey puls switch puls case "up" #dobbiamo muoverla in indietro rispetto al verso del muso #prendiamo l'angolo della direzione put the angle of image "car" into temp #creaimo una strina del tipo x,y put -5 * sin( pi / 180 * temp) into movimento put "," after movimento put -5 * cos( pi / 180 * temp) after movimento move image "car" relative movimento break case "down" #dobbiamo muoverla in indietro rispetto al verso del muso #prendiamo l'angolo della direzione put the angle of image "car" into temp #creaimo una strina del tipo x,y put 5 * sin( pi / 180 * temp) into movimento put "," after movimento put 5 * cos( pi / 180 * temp) after movimento move image "car" relative movimento break case "left" #ruotiamo a sinistra l'immagine put the angle of image "car" into temp add 1 to temp set the angle of image "car" to temp break case "right" #ruotiamo a destra l'immagine put the angle of image "car" into temp add -1 to temp set the angle of image "car" to temp break end switchend arrowkey
Notate che non c'è bisogno di preoccuparsi se angle è più di 360° o meno di zero, livecode ritrasforma l'angolo correttamente. Anche per le coordinate relative non è un problema se non sono degli interi.
L'unica attenzione va fatta nelle funzioni seno e coseno, che accettano come input l'angolo in radianti, mentre l'angolo delle immagini è espresso in gradi. Per questo motivo c'è la moltiplicazione per π/180 che fa da conversione.
Per chi è a digiuno di informatica ricordo che il sistema di riferimento X,Y delle finestre, in tutti i linguaggi di programmazione, ha:
- l'origine nell'angolo in alto a sinistra
- l'asse X punta verso destra
- l'asse Y punta verso il basso
Per chiarezza ecco uno schema riassuntivo:



Nessun commento:
Posta un commento