torstai 17. joulukuuta 2015

Ylöjärven animaatiot (jatko)

Viimeisellä kouluviikolla jatkoimme animaatioiden kanssa Ylöjärven yhtenäiskoulussa. Palautimme mieleen asioita kahden viikon takaa: muuttuja, funktio, ehtolause, vertailuoperaatio sekä animaatiomoottori (animate).
Uutena asiana otimme cond-valintalauseen, että saimme animaation tekemään useampaa kuin kahta juttua. Jatkoimme viimekertaisen ympyräanimaation kehittelyä jokainen omaan suuntaansa.

Aloitimme oman animaation tekemisen ensin vaihtamalla ympyrän johonkin muuhun kuvaan esim. tähteen (star, radial-star) ja vaihtamalla sille värin. Sitten muutimme koodin niin, että if:in tilalle vaihdettiin cond.

(define (oma-kuva t)
   (cond [(< t 250)
          (star t "solid" "purple")]
         [else
          (circle t "solid" "red")]))

Kaksi viikkoa oli aika pitkä aika muistaa se, että jos jätti tuon t:n pois ja kirjoitti vaikka 40 niin tähden koko ei muuttunut. Tässä tuli hyvin kerrattua jälleen kerran muuttujan käsite. Animaatiossa se vieläpä konkretisoituu niin hyvin, jos muuttuja ei ole käytössä niin kuva ei todellakaan muutu!

Cond-lause ei sinänsä tuottanut ongelmia mutta ehtojen säätäminen oli uusi asia, joka vaati miettimistä. Esim. moni kopioi ensimmäisen ehdon eikä vaihtanut lukuja, ja sitten ihmetteli miksi kolmas kuva ei koskaan tule esiin... No, miksiköhän ei?

(define (oma-kuva t)
   (cond [(< t 250)
          (star t "solid" "purple")]
         [(< t 250)
          (star t "solid" "yellow")]
         [else
          (circle t "solid" "red")]))

Toinen pohdinnan paikka tuli eteen siinä, kun animaatio piteni, jossain vaiheessa viimeiset kuvat putosivat pois. Tässä vaiheessa olisi pitänyt muistaa, että rajoitimme animaation t:n tietylle välillä. Jos olemme rajoittaneet t:n välille 0-199, tietenkään kuva jonka pitäisi tulla esiin kun t on 300-400 ei ikinä ilmesty. Tämän sai korjattua muokkaamalla modulo:a.

(define (kuva t)
  (place-image (oma-kuva (modulo t 400)) 

               250 250 
               (empty-scene 500 500)))

Viimekerralla tehty "kuha-kääntyy" funktio otetiin nyt käyttöön, kuvat laitettiin pyörimään, vaihtamaan väriä, suurenemaan ja pienenemään. Osa vaihtoi myös place-imageen x:n tilalle muuttujan, jolloin kuva lähti kulkemaan vasemmalta oikealla. Ja modulon avula se saatiin toistamaan samaan (nyt rajoittava arvo saatiin empty-scene:n leveydestä). Muutama oppilas lisäsi myös tekstiä  animaatioonsa.

Tässä yksi animaatio, jossa kuva pyörii, liikkuu eteenpäin ja mukana on myös teksti:



Ei kommentteja:

Lähetä kommentti