Aplicació de funcions trigonomètriques per controlar els moviments i l'orientació dels clips de pel·lícula. Continuació | ||
|
||
En
aquesta quarta pràctica, continuareu amb les funcions trigonomètriques
i coneixements adquirits en les primeres pràctiques (distàncies,
punts de registre, girs...) per desenvolupar una aplicació força
curiosa en la qual simulareu una eina (compàs) que, de forma virtual,
dibuixarà circumferències amb radis definits per l'usuari/ària. |
||
Els objectius d'aquesta quarta pràctica són: | ||
|
||
Per dur a terme aquesta pràctica, necessitareu l'arxiu compas0.zip. | ||
Desenvolupament de la pràctica | ||
Creació d'una aplicació de simulació d'un compàs virtual | ||
Com podeu observar, jugant una mica amb el programa que es mostra, es tractarà de programar les accions que cal fer per a l'element corresponent perquè faci aquestes simulacions:
|
||
Per facilitar la comprensió de la pràctica i del codi corresponent, observeu els aspectes següents: | ||
|
||
» Inseriu el codi d'inicialització de les variables que s'utilitzaran al programa i que anireu esbrinant a mesura que es vagi programant el codi: | ||
|
||
» Inseriu el codi següent a les accions del botó amb la icona de compàs tancat: | ||
|
||
» Feu el mateix al segon botó (compàs obert), però utilitzant la variable j, i el mateix amb el botó de gir utilitzant la variable g. En els tres botons, les variables corresponents actuen com a interruptors per activar o desactivar les accions que hauran de fer. | ||
» Inseriu el codi següent al clip que es troba fora de l'escenari i que controlaran les accions activades pels botons de tancar, obrir, girar. | ||
|
||
Observeu que, perquè l'obertura, tancament, gir... siguin continuats, les accions s'inclouen dins la incidència enterFrame, respectivament. En el cas que les variables interruptors estiguin activades, faran les accions d'obrir o tancar el compàs fins al límit posat per la condició (no més de 90 graus d'obertura ni menys de 0 graus de tancament). Ara necessiteu que el compàs es pugui arrossegar per l'escenari. Com que un clip de pel·lícula no és sensible, en principi, a les accions del ratolí, i sí a les incidències, l'arrossegament del clip de pel·lícula el podreu aconseguir amb la incidència mouseDown i mouseUp quan es detecti la col·lisió del ratolí sobre el compàs. » Inseriu el codi següent a les accions del clip de pel·lícula compàs: |
||
|
||
A la incidència load, s'utilitza el mètode swapDepths(), ja explicat en el mòdul 3, amb la finalitat que el compàs estigui sempre per sobre de les línies que dibuixa. Per finalitzar, programeu l'acció de dibuixar la circumferència. Això implica seguir un procediment que constarà de quatre fases:
|
||
Ara s'inclou el codi d'aquestes quatre fases en blocs. | ||
on (release) { // Bloc 1 // Bloc 2 // Bloc
3 // Bloc 4 |
||
Observeu que el bloc tres té les condicions necessàries per evitar errors en cas que el compàs estigui girat, de forma que les coordenades dels clips de pel·lícula agull i rotring pugin ser de signe negatiu i el càlcul de les distàncies no sigui correcte. Mereix especial atenció el quart bloc del codi on l'acció que es repeteix 360 vegades situa el clip bola a les coordenades X i Y utilitzant la funció cos(), que fa referència a l'eix X, i sin() que fa referència a l'eix Y, ja que la funció Math.cos() treballa en radiants i s'ha de convertir en graus ((a/180)*Math*PI). El radi de la circumferència ve donat per la distància calculada, i el centre d'aquesta circumferència ve donat per les variables globals x, y. |
||
Una vegada se situa el clip de pel·lícula bola, es procedeix a la seva duplicació en el seu nivell corresponent. Observeu que no heu dotat de codi els botons de colors, ja que aquest apartat de tractament de colors es treballarà al mòdul 7, on podeu completar tota l'aplicació, com es pot veure en el programa que es mostra en aquesta pràctica. Deseu l'arxiu després de comprovar-ne el funcionament amb el nom compas1. |
||
En aquesta pràctica, heu utilitzat un sisitema de fer circumferències i línies amb duplicacions de clips, per poder fer aplicacions i veure aquest sistema. Però amb la nova API de dibuix a partir de la versió MX, es poden crear corbes, circumferències, arcs, el·lipses... utilitant el mètode curveTo(); | ||
|
||
Obriu un document nou i poseu, en el primer fotograma de la línia de temps, aquest codi anterior, on es crea l'estil de línia en primer lloc, ubiqueu el punt de registre on començarà la línia, i traceu la corba segons els paràmetres explicats com a comentari en el mateix codi. | ||