Postoji nekoliko nacina da se nesto animira,
ali osnovni princip je uvek isti:
ako uzmes nekoliko crteza
gde je svaki malo drugaciji od prethodnog
i prelistas ih jako brzo
izgledace kao da se slika pomera.
U stara dobra vremena, svi crtezi su crtani rukom.
I trebalo je jako dugo da se napravi animacija od 3 sekunde.
Na nasu srecu, mi zivimo u buducnosti.
U sustini je vrlo lako da se kodiranjem napravi jednostavna animacija.
Pokazacu vam kako!
Na levoj strani, mozete videti slatki mali auto na lepoj zutoj pozadini.
Tacno, ja sam dizajnirala taj auto, hvala.
U svakom slucaju, ovde mi odredjujemo boju pozadine.
I auto nema obod, tako da pisemo noStroke() funkciju.
I onda ovde pravimo novu varijablu "x", pozicija auta, i dajemo joj vrednost 10.
Mozete videti da ako promenimo ovu vrednost,
to pomera auto napred nazad.
Stavimo 10.
Ovde odredjujemo boju auta, i crtamo pravougaonike koji predstavljaju auto.
Izgleda da je prvi pravougaonik za donji deo auta
a ovaj za gornji.
I onda ovde radimo istu stvar za tockove
Odredimo boju i nacrtamo dva kruga:
jedan na x + 25
i x + 75
Konacno smo dosli do novih stvari.
Ovo se zove definicija funckije.
Naucicete o tome kasnije.
Za sada, samo pogledajte i zapamtite kako izgleda.
Vazne stvari da primetite su rec "draw" i ove zagrade.
Ova otvorena zagrada
I ova zatvorena zagrada ovde.
Za ovo kazemo da se crtez vrti u krug, ili animacija se vrti u krug.
I sve sto stavite izmedju ovih zagrada se neprekidno vrti u krug vrlo, vrlo brzo.
Zato se zove loop - sto znaci da se bez prestanka vrti u krug.
A sve sto je van ovih zagrada se izvrsi samo jednom na pocetku programa.
Prvi korak u animaciji je da pomerite sve kodove crteza unutar zagrada.
Tako da ce crtez da bude nacrtan uzastopno nekoliko puta.
Hajmo uraditi to. Ja cu da povucem ceo ovaj kod crteza.
I ubacim ga ovde, izmedju zagrada
I da podsetim sebe da ceo ovaj kod ide unutar zagrada, malo cu da ga uvucem tako sto cu celog da ga selektujem i pritisnem tab.
I sada znam da je ovaj kod unutar zagrada.
Kao sto mozete videti sve izgleda isto, nista se nije promenilo.
Kada prvi put pokrenemo draw lookp, kompjuter ce da kaze "dobro, napravi novu promenljivu x, stavi vrednost 10, nacrtaj dva pravougaonika, nacrtaj dva kruga."
I onda ce da ide gore na pocetak i kaze, "napravi novu promenljivu x, stavi vrednost 10, narctaj dva pravougaonika, i dva kruga."
I onda, "napravi novu promenljivu x, stavi vrednost 10, nacrtaj…" Identicna stvar
Nista se nije promenilo, necete videti nikakvu animaciju.
Samo crta identicne pravougaonike i krugove jedan preko drugog.
Secate li se sta smo rekli: ako zelimo da nesto izgleda animirano, vi morate pomalo menjati crtez.
Tako da ako zelite da se kola pomeraju unapred
trebala bi da promenim vrednost od x promenljive, zar ne?
Da, hajmo da napravimo…11
Oh! Ne! Sada ce biti 11 svaki put.
Kako mogu da napravim da se vrednost od x menja kada kompjuter vrti samo isti kod?
Dobro, gledaj ovaj magicni trik:
Secas se, ova "var x" napravi novu promenljivu.
Kada to imamo unutar ovog kruga, svaki put pravi novu promenljivu "x".
Sta treba uraditi je staviti ovu promeljivu van ovog kruga. Tako ce je napraviti samo jednom.
I onda, kada kompjuter izvrsava ovaj kod i vidi promenljivu x, upotrebice istu promenljivu koristeci poslednju vrednost koju smo joj odredili.
I ja cu to uraditi, uzecu ovu promenljivu, i stavicemo izvan ovog ciklusa, i sada ce praviti tu promenljivu samo jednom,
I svaki put kad naidje na tu promenljivu x koristice istu. Trenutno poslednja vrednost sto smo joj odredili je "11".
Tako da ce uvek biti 11. I sada magija nastupa.
Negde u ovom ciklusu cemo promeniti vrednost od x da bude malo vise nego sto je bilo pre, ovako: x ce da bude stara vrednost od x plus, recimo, 1.
Radi!
Osim sto je zamazan. Ako se pitate zasto izgleda ovako, razlog je sto smo zaboravili da nacrtamo pozadinu unutar ovog ciklusa.
Crta haute ali mozete videti da su stari auti ispod novih.
Ako premestim ovu liniju na vrh ovog ciklusa, evo ovako,
I pritisnem "restart" da mogu opet da vidim moj auto…
Perfektno!
Ako hocemo da auto ide brze, samo promenimo za koliko cemo povecati vrednost od x svaki put.
Ako stavimo 10, wow! Nestade sa ekrana! Mogu da napravim cak i negativno, "x - 10" i…
Evo dolazi! Stavim pozitivno opet, ups…evo.
Sta je vazno da se zapamti:
Ova stvar ovde se zove "draw loop". Treba da unutar toga stavite kod crteza kako bi se uzastopno crtao.
I onda, stavite promenljive van vaseg "draw loop" (ciklusa). Vazno je staviti to van "draw loop"da bi mogli da koristimo iste svaki put.
I onda unutar "draw loop", tacno ovde, promenicemo promenljive za malo.
obicno koristeci njihovu staru vrednost, plus neki broj, pozitivan ili negativan broj.
I na kraju, koristite vasu promenljivu negde u kodu crteza, tako da crtez svaki put izgleda drugacije.
I to je sve!