Android Animation and Game Development

Da li ste znali da se do dinamičnih animacija unutar Android aplikacija dolazi crtanjem? Ne samo da ćete na ovom kursu savladati tehnike crtanja proizvoljne rasterske grafike i naučiti da stvarate grafiku koja u potpunosti odgovara potrebama aplikacije koju razvijate već ćete se upoznati i sa osnovama razvoja 2D igara za Android platformu. 

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Android Mobile Development.

Opis i cilj kursa Android Animation and Game Development

Kurs Android Animation and Game Development bavi se osnovnim tehnikama za postizanje animacije unutar aplikacija koje se izvršavaju na operativnom sistemu Android. Prvi deo kursa pokriva najznačajnije sisteme Android platforme koji omogućavaju kreiranje animacije bez pisanja njene osnovne funkcionalnosti „od nule”. Reč je o sistemima Drawable Animation, View Animation i Property Animation, koji su sastavni deo Android platforme. Korišćenjem ovih sistema za animiranje polaznici će biti u mogućnosti da na lak i brz način kreiraju efektne animacije vizuelnih elemenata aplikacije.

Drugi deo kursa posvećen je simbiozi crtanja i animacije. Android platforma poseduje moćan sistem koji omogućava potpuno programabilno crtanje proizvoljne rasterske grafike, ali i korišćenje postojeće, kreirane u nekim od alata za rastersku i vektorsku grafiku. Na taj način polaznici će biti u mogućnosti da stvore grafiku koja u potpunosti odgovara potrebama aplikacije koja se razvija.

Tehnike crtanja custom grafike biće iskorišćene i prilikom upoznavanja procesa kreiranja custom UI elemenata. To su elementi koji su potpuno proizvoljni, ne postoje unutar same platforme i u potpunosti odgovaraju potrebama aplikacije. Tako će polaznici savladati tehnike koje će im omogućiti da kreiraju UI elemente, pri čemu će osobine tih elemenata biti ograničene samo granicama njihove mašte.

Završni deo kursa bavi se osnovama razvoja 2D igara za Android platformu. Polaznici će naučiti kako igre funkcionišu na svom osnovnom nivou i na koji način realizovati logiku jedne igre unutar Android platforme. Sve to će biti potkrepljeno praktičnim primerima na realizaciji jedne realne, upotrebljive Android igre.

Cilj kursa je da se polaznici upoznaju sa osnovnim sistemima Android platforme za realizaciju animacije i kreiranje custom UI elemenata, kao i osposobljavanje polaznika za kreiranje 2D Android igara. Polaznici će se najpre upoznati sa osnovama animacije i sistemima koji se koriste za kreiranje animacije i upravljanje animacijom, od najjednostavnijih ka složenijim. Nakon što se polaznici upoznaju sa osnovama animacije, cilj je osposobiti ih da izvrše samostalno crtanje, i to programabilnim putem, i animiranje takvih crteža, odnosno Canvas grafike.

Nakon navedenih oblasti, cilj je na osnovu prethodno naučenih stvari upoznati se sa kreiranjem potpuno prilagođenih, odnosno custom View elemenata za kojima se može javiti potreba kada ponuđeni elementi unutar Android biblioteke ipak ne zadovoljavaju zahteve aplikacije. Na samom kraju kursa, cilj je upoznati polaznike sa elementima potrebnim za kreiranje 2D igara za Android platformu i osposobiti ih da na osnovu sadržaja kursa umeju samostalno da realizuju jednostavnu 2D igru.

Kurs Android Animation and Game Development će vam odgovoriti na pitanja:

1. Šta je animacija?

Proces kojim se stvara iluzija pokreta naziva se animacija. Tokom vremena, ljudi su koristili različite tehnike za postizanje animacije. Najstariji primer animacije jeste serija uzastopno povezanih crteža, stara preko 5.200 godina, koja je pronađena u gradu Shahre Sūkhté u jugoistočnom Iranu. Pronađeno delo sačinjeno je od pet povezanih crteža koji prikazaju persijsku pustinjsku kozu koja skače kako bi dohvatila list sa grane. Kako je čovečanstvo napredovalo, javila se ideja o kreiranju uređaja (mašine) koji bi obavljao naizmeničnu promenu slika kojom bi se dobila iluzija kretanja. Prvi uređaj takve vrste bio je fenakistiskop.

Principi na kojima su zasnovani pionirski počeci animacije uopšte se na razlikuju od današnjih modernih principa. Jedina razlika je u oruđu koje se koristi za postizanje animacije. Ono za šta su čoveku bili potrebni dani i meseci da postigne danas se u digitalnom svetu postiže za nekoliko minuta, i to na veoma jednostavan način.

Kompjuterska animacija se reprodukuje na monitorima, odnosno displejima, a izvodi je hardver računara, koji kontroliše softverska logika. Tako su fenakistiskop i njemu slične naprave u digitalnom svetu zamenjeni programskom logikom, napisanom nekim od programskih jezika. Crteži tradicionalne animacije na kartonu ili na nekom drugom materijalu zamenjeni su elektronskim prikazima postignutim mrežom piksela.

2. Kako se postiže animacija na Android platformi?

Android platforma poseduje nekoliko ugrađenih sistema za postizanje animacije. Oni se razlikuju po funkcionalnostima, mestima primene i vremenu predstavljanja. Reč je o sledećim sistema:

  • Drawable Animation;
  • View Animation;
  • Property Animation;
  • Transitions Framework;
  • Canvas.

Sistem koji omogućava kreiranje najjednostavnijih animacija jeste Drawable Animation sistem. On omogućava postizanje animacije brzim smenjivanjem grafičkih, odnosno Drawable resursa.

View Animation je najstariji sistem Android platforme, namenjen animiranju UI elemenata. Zove se View Animation zato što je namenjen animiranju isključivo View elemenata.

Property Animation je sistem koji je predstavljen sa operativnim sistemom Android 3.0 (API 11); on omogućava animiranje svojstava bilo kojih objekata, pa čak i onih koji ne poseduju grafičku reprezentaciju.

Za crtanje proizvoljne grafike, Android platforma poseduje veoma moćan sistem – Canvas. Canvas obezbeđuje skup funkcionalnosti koje omogućavaju veoma lako crtanje dvodimenzionalne grafike, na delu korisničkog okruženja koje se slikovito naziva platno (canvas). Grafiku koja se crta korišćenjem Canvas sistema moguće je koristiti za promenu izgleda postojećih UI elemenata, ali i za kreiranje potpuno novih. Upotreba Canvasa je posebno zanimljiva kada je potrebno napraviti nešto napredniju animaciju, zato što omogućava animiranje potpuno proizvoljne grafike.

3. Šta je Drawable Animation?

Drawable Animation sistem predstavlja najjednostavniji vid postizanja animacije, kod kog su njena osnovna načela najočiglednija. Zasniva se na korišćenju serije drawable resursa, čijim se međusobnim brzim smenjivanjem postiže animacija. Zbog sličnosti sa tradicionalnom animacijom, može se reći da kod Drawable animacije ulogu fenakistiskopa kao uređaja za stvaranje iluzije preuzima programska logika Android aplikacije – ili, još preciznije, programska logika Drawable Animation sistema. Osnova takvog sistema jeste klasa AnimationDrawable.

AnimationDrawable je jedna od klasa koje unutar Android platforme postoje još od prve verzije Android API-a. Tako je ovaj pristup kreiranja animacije jedan od najstarijih. Klasa AnimationDrawable nalazi se unutar paketa android.graphics.drawable.

Objekti klase AnimationDrawable koriste se za kreiranje frame-by-frame animacije, pri čemu se svaki frame definiše jednim Drawable objektom. Tako kreiran AnimationDrawable objekat može biti korišćen kao pozadina nekog View elementa, čime se postiže prikaz animacije korisniku.

Kurs Android Animation and Game Development

4. Šta je View Animation?

View Animation API je još jedna od originalnih API Android platformi namenjenih za postizanje animacije. View Animation API omogućava kreiranje takozvane tweened animacije. Tweened animacija omogućava postizanje animacije definisanjem znatno

manjeg broja kadrova. Prelazak iz jednog kadra u drugi vrši se automatski, tako što se generišu svi potrebni međukadrovi. Otuda potiče i naziv ovakvog tipa animacije, s obzirom na to da se proces generisanja između kadrova na engleskom naziva inbetweening ili skraćeno tweening.

Osnovu klasnog modela View animacije predstavlja apstraktna klasa Animation. To je osnovna klasa, koju nasleđuju i proširuju sve ostale konkretne klase za postizanje animacije. Nju nasleđuju sledeće konkretne klase animacije:

  • AlphaAnimation;
  • ScaleAnimation;
  • TranslateAnimation;
  • RotateAnimation.

5. Šta je tweened animacija?

Tradicionalna animacija zasniva se na definisanju kadrova, odnosno frejmova za svaki trenutak u vremenu. Brzim smenjivanjem takvih kadrova – postiže se animacija. Za razliku od ovakvog, izvornog pristupa, tweened animacija omogućava postizanje animacije definisanjem znatno manjeg broja kadrova. Prelazak iz jednog u drugi kadar vrši se automatski, tako što se generišu svi potrebni međukadrovi. Otuda potiče i naziv ovakvog tipa animacije. Naime, proces generisanja međukadrova na engleskom se naziva inbetweening ili skraćeno tweening.

Bitno je razumeti da se kod tweened animacije međukadrovi (kadrovi između prvog i poslednjeg) ne definišu ručno, kao što je to bio slučaj kod Drawable animacije, već njihovo kreiranje automatski vrši sistem koji obavlja animaciju. Jednostavnim definisanjem osobina koje je potrebno animirati i njihovih vrednosti postiže se kreiranje svih potrebnih međukadrova, čime se postiže iluzija kretanja.

6. Šta je Property Animation sistem?

Property Animation framework je sistem koji omogućava da se animira praktično bilo koji element korisničkog okruženja. To se postiže direktnom intervencijom na vrednostima svojstava objekta koji se animira. Jednostavno, Property sistem animacije omogućava da se vrednost bilo kojeg svojstva objekta menja tokom određenog vremenskog perioda i da se na taj način postigne animacija. Otuda i potiče naziv ovakvog sistema. S obzirom na to da rukuje vrednostima svojstava, jednostavno je nazvan Property Animation.

Korišćenjem Property Animation sistema moguće je uticati na sve one karakteristike animacije na koje je bilo moguće uticati i korišćenjem View sistema, ali i više od toga. Tako je korišćenjem Property Animation sistema moguće uticati na:

  • trajanje animacije;
  • linearnost animacije (interpolaciju);
  • broj i način ponavljanja animacije;
  • grupisanje;
  • period osvežavanja prikaza prilikom animiranja.

7. Kako se crta rasterska grafika na Android platformi?

Android platforma, pored korišćenja statičkih, unapred kreiranih Bitmap grafika, omogućava njihovo kreiranje i potpuno programabilno. Da bi se tako nešto postiglo, potrebno je upoznati se sa tri osnovne komponente namenjene takvom poslu:

  • Bitmap objekat – predstavlja mrežu piksela koja reprezentuje grafiku koja se crta;
  • Canvas objekat – sadrži kompletnu funkcionalnost za obavljanje crtanja;
  • Paint objekat – definiše boju i stilizaciju crteža.

Bitmap je pojam koji se u kompjuterskoj grafici koristi da definiše pravougaonu mrežu ćelija. Takve ćelije nazivaju se pikseli, a svaki piksel poseduje određenu boju. S obzirom na to da su pikseli relativno malih dimenzija i vrlo gusto raspoređeni, mrežom takvih piksela stvara se grafički prikaz.

Canvas predstavlja skup funkcionalnosti koje omogućavaju renderovanje proizvoljne 2D grafike. Čak i samo ime Canvas, koje na engleskom jeziku znači slikarsko platno, dovoljno govori o nameni ove komponente Android platforme.

Prilikom crtanja korišćenjem različitih metoda klase Canvas, takvim metodama je neophodno proslediti i informacije o stilizaciji i boji grafike koja se crta. Bez takvih informacija, crtanje ne bi imalo nikakvog smisla. Na primer, zamislite da crtate liniju.

Ukoliko ne definiše njenu debljinu i boju, nacrtana linija se neće ni videti. Tako se za definisanje informacija o stilizaciji i boji objekata koji se crtaju koriste objekti klase Paint. Klasa Paint je, baš kao i klasa Canvas, direktan potomak klase Object Java jezika i deo je android.graphics paketa.

Plan i program predavanja

Modul 1 – Uvod u Android animaciju

  • Uvod u Android animaciju
  • Drawable Animation
  • View Animation

Modul 2 – Property Animation

  • Uvod u Property Animation sistem
  • Animiranje korišćenjem ObjectAnimator klase
  • Interpolatori, ključni kadrovi i ViewPropertyAnimator klasa

Modul 3 – Crtanje i animacija

  • Uvod u crtanje
  • Kreiranje prve grafike
  • Crtanje osnovnih oblika korišćenjem klasa Canvas i Paint
  • Napredno crtanje korišćenjem klasa Canvas i Paint
  • Animiranje Canvas grafike

Modul 4 – Kreiranje custom UI elemenata

  • Custom UI elementi
  • Uvod u kreiranje custom View elemenata
  • Custom XML atributi
  • Merenje i crtanje
  • Interakcija i animacija
  • Enkapsulacija custom View elementa unutar Android biblioteke

Modul 5 – Razvoj 2D igara

  • Uvod u razvoj 2D igara za Android platformu
  • Podloga za crtanje – SurfaceView
  • Motor igre – game loop
  • Realizacija Jump & Run igre

Kurs Android Animation and Game Development

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde