Android Animation and Game Development

Știați că puteți să creați animații dinamice în aplicațiile Android prin desen? Nu doar că veți asimila tehnici de desenare a graficii raster arbitrare și veți învăța să creați grafica care corespunde în totalitate nevoilor aplicației pe care o dezvoltați, ci vă veți familiariza și cu bazele dezvoltării jocurilor 2D pentru platforma Android. 

Sunteţi interesat de acest curs? Îl puteţi parcurge în cadrul acestor programe LINK Academy: Android Mobile Development.

Descrierea și scopul cursului Android Animation and Game Development

Cursul Android Animation and Game Development se ocupă cu tehnicile de bază ale realizării animației în aplicațiile care se execută pe sistemul de operare Android. Prima parte a cursului descrie cele mai importante platforme Android care permit crearea animației fără scrierea funcționalității ei de bază „de la zero”. Este vorba despre sistemele Drawable Animation, View Animation și Property Animation, care fac parte din platforma Android. Folosind aceste sisteme de animare, cursanții vor putea să creeze ușor și rapid animații de efect ale elementelor vizuale ale aplicației. 

A doua parte a cursului este dedicată simbiozei desenului și animației. Platforma Android are un sistem puternic care permite desenarea complet programabilă a unei grafici raster arbitrare, dar și folosirea celei existente, creată cu unul din instrumentele pentru grafica raster sau vectorială. La final, cursanții vor putea să creeze o grafică care corespunde în totalitate nevoilor aplicației pe care o dezvoltă. 

Tehnicile de desenare a graficii personalizate vor fi folosite și când ne familiarizăm cu procesul de creare a elementelor UI. Acestea sunt elemente complet arbitrare, nu există pe platformă și corespund în totalitate nevoilor aplicației. Astfel, cursanții vor asimila tehnicile care le vor oferi posibilitatea să creeze elemente UI, iar caracteristicile acestor elemente vor fi limitate doar de granițele imaginației lor. 

Ultima parte a cursului se ocupă cu bazele dezvoltării jocurilor 2D pentru platforma Android. Cursanții vor învăța cum funcționează jocurile la nivel de bază și cum să realizeze logica unui joc pe platforma Android. Toate acestea vor fi susținute prin exemple practice de realizare a unui joc Android real, utilizabil. 

Scopul cursulului este familiarizarea paricipanților cu sistemele de bază ale platformei Android pentru realizarea animațiilor și crearea elementelor custom UI, precum și pregătirea participanților pentru crearea jocurilor 2D. În primul rând, participanții se vor familiariza cu bazele animației și cu sistemele folosite pentru crearea animațiilor și gestionarea acestora, de la cele mai simple la cele mai complexe. După familiarizarea participanților cu bazele animației, scopul este pregătirea lor pentru a desena singuri pe cale programabilă și a anima aceste desene, respectiv grafica Canvas. 

După domeniile menționate, scopul este ca pe baza celor învățate anterior, cursanții să se familiarizeze și cu crearea elementelor personalizate, custom View de care poate fi nevoie când elementele oferite în biblioteca Android nu satisfac cerințele aplicației. La finalul cursului, participanții vor fi familiarizați cu elementele necesare pentru a crea jocuri 2D pentru platforma Android și pregătiți ca, pe baza conținutului cursului, să știe să facă singuri un joc 2D simplu. 

Cursul Android Animation and Game Development vă răspunde la următoarele întrebări:

1. Ce este animația?

Procesul prin care se creează iluzia mișcării se numește animație. De-a lungul timpului, oamenii au folosit diferite tehnici de animație. Cel mai vechi exemplu este o serie de desene conectate consecutiv, veche de peste 5200 de ani, găsită în orașul Shahre Sūkhté în sud-estul Iranului. Opera găsită e alcătuită din cinci desene legate care reprezintă o capră de deșert persană sărind să apuce o frunză de pe ramură. Odată cu progresul umanității, a apărut ideea de a crea un dispozitiv (mașină) care să schimbe alternativ imaginile pentru a crea iluzia mișcării. Primul dispozitiv de acest gen a fost fenakistoscopul. 

Principiile pe care se bazează începuturile pioneratului în animație nu se deosebesc deloc de principiile moderne din prezent. Singura diferență stă în instrumentele folosite pentru a crea animația. În trecut, era nevoie de zile și luni pentru a crea o animație, acum în lumea digitală o obținem în câteva minute și într-un mod foarte simplu. 

Animația pe calculator este reprodusă pe monitoare, adică ecrane (display-uri) și este efectuată de hardware-ul calculatorului controlat de logica software. Astfel, fenakistoscopul și alte dispozitive similare au fost înlocuite de logica de programare, scrisă într-un limbaj de programare. Desenele animației tradiționale pe carton sau pe un alt material au fost înlocuite cu prezentări electronice realizate cu o rețea de pixeli.

2. Cum se obține animația pe platforma Android?

Platforma Android are câte sisteme încorporate pentru realizarea animației. Acestea se deosebesc după funcționalități, locurile de aplicare și timpul de prezentare. Este vorba despre următoarele sisteme:

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

Sistemul care permite crearea celor mai simple animații este Drawable Animation. Acesta permite obținerea animației prin schimbarea rapidă a resurselor grafice, respectiv Drawable. 

View Animation este cel mai vechi sistem al platformei Android, destinat animării elementelor UI. Se numește View Animation deoarece este destinat exclusiv animării elementelor View. 

Property Animation este un sistem introdus odată cu sistemul de operare Android 3.0 (API 11); acesta permite animarea proprietăților oricăror obiecte, chiar și a celor care nu dețin reprezentarea grafică. 

Pentru a desena grafica arbitrară, platforma Android are un sistem foarte puternic – Canvas. Canvas asigură un set de funcționalități care permit desenarea foarte ușoară a graficii bidimensionale, pe partea mediului de utilizator care se numește pictural pânză (canvas). Grafica desenată cu sistemul Canvas se poate folosi pentru schimbarea aspectului elementelor UI existente, dar și pentru crearea unora complet noi. Utilizarea lui Canvas este foarte interesantă când trebuie să creăm o animație mai avansată, deoarece permite animarea graficii complet arbitrare.

3. Ce este Drawable Animation?

Sistemul Drawable Animation reprezintă cel mai simplu mod de a obține o animație, unde principiile sale de bază sunt cele mai vizibile. Se bazează pe folosirea seriei de resurse drawable, prin a cărei schimbare rapidă se obține o animație. Datorită similitudinii cu animația tradițională, se poate spune că la animația Drawable, rolul de fenakistoscop la dispozitivele pentru crearea iluziei îl preia logica de programare a aplicației Android – sau, și mai precis, logica de programare a sistemului Drawable Animation. Baza acestui sistem este clasa AnimationDrawable. 

AnimationDrawable este una din clasele care au existat pe platforma Android încă de la prima versiune Android API. Așadar, o astfel de creare a animației este una dintre cele mai vechi. Clasa AnimationDrawable se află în pachetul android.graphics.drawable. Obiectele clasei AnimationDrawable se folosesc pentru crearea animației frame-by-frame, unde fiecare frame se definește cu un obiect Drawable. Obiectul AnimationDrawable creat astfel se poate folosi ca fundalul unui element View, cu care obținem prezentarea animației utilizatorului. 

Curs Android Animation and Game Developmen

4. Ce este View Animation?

View Animation API este o altă platformă originală API Android menită pentru realizarea animației. View Animation API permite crearea așa-numitei animații tweened. Animația tweened permite realizarea animației definind un număr semnificativ mai mic de coduri. Trecerea de la un cadru la altul se face automat, așadar se generează toate interframe-urile necesare. De aici rezultă și numele acestui tip de aplicație, având în vedere că procesul de generare dintre cadre în limba engleză se numește inbetweening sau prescurtat tweening.

Principala clasă a modelului de animație View este clasa abstractă Animation. Aceasta este clasa de bază, moștenită și extinsă de celelalte clase concrete pentru a obține animația. Aceasta este moștenită de următoarele clase concrete de animație:

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

5. Ce este animația tweened?

Animația tradițională se bazează pe definirea cadrelor, respectiv a frame-urilor pentru fiecare moment în timp. Prin derularea rapidă a acestor cadre – se obține animația. Spre deosebire de această abordare originală, animația tweened permite realizarea animației definind un număr relativ mic de cadre. Trecerea de la un cadru la altul se face automat generându-se astfel toate interframe-urile necesare. De aici, provine și numele acestui tip de animație. De fapt, procesul de generare a interframe-urilor în limba engleză se numește inbetweening sau prescurtat tweening.

Este important să înțelegem că la animația tweened, interframe-urile (cadrele dintre primul și ultimul) nu se definesc manual, ca în cazul animația Drawable, ci sunt create automat de către sistemul care face animația. Prin simpla definire a caracteristicilor care trebuie animate și a valorilor lor, se creează toate interframe-urile necesare cu care se obține iluzia de mișcare.

6. Ce este sistemul Property Animation?

Property Animation framework este un sistem care permite animarea oricărui element din mediul de utilizator. Acest lucru se obține cu intervenție directă asupra valorilor proprietăților obiectului care se animă. Simplu, sistemul Property de animare permite ca valoarea oricărei proprietăți a obiectului să se schimbe la un anumit interval de timp și să se obțină astfel o animație. De aici rezultă și numele acestui sistem. Având în vedere că gestionează valorile proprietăților, pur și simplu este denumit Property Animation.

Folosind sistemul Property Animation putem să influențăm toate acele caracteristici ale animației care pot fi influențate și folosind sistemul View, dar și mai mult. Astfel, folosind sistemul Property Animation se poate influența:

  • durata animației;
  • linearitatea animației (interpolarea);
  • numărul și modul de repetare a animației;
  • gruparea;
  • perioada de reîmprospătare a prezentării la animație.

7. Cum se desenează grafica raster pe platforma Android?

Platforma Android, pe lângă folosirea graficii Bitmap statice, create în avans, permite crearea lor și în mod programabil. Ca să obținem așa ceva, trebuie să cunoaștem trei componente de bază destinate acestui lucru:

  • reprezintă rețeaua de pixeli care reprezintă grafica care se desenează;
  • conține funcționalitatea completă pentru desenare;
  • obiectul Paint – definește culoarea și stilizarea desenului. 

Bitmap este o noțiune care se folosește în grafica de calculator ca să definească rețeaua dreptunghiulară de celule. Aceste celule se numesc pixeli, iar fiecare pixel are o anumită culoare. Având în vedere că pixelii au o dimensiune relativ mică și sunt aranjați foarte aproape, o rețea de astfel de pixeli creează o prezentare grafică. 

Canvas este un set de funcționalități care permit randarea graficii 2D arbitrare. Chiar și numele Canvas, care în limba engleză înseamnă pânză pentru pictat, spune suficiente despre scopul acestei componente a platformei Android. 

Când desenăm folosind diferite metode ale clasei Canvas, aceste metode trebuie să primească și informații despre stilizarea și culoarea graficii care este desenată. Fără astfel de informații, desenarea nu ar avea niciun sens. De exemplu, imaginați-vă că desenați o linie. Dacă nu definiți grosimea și culoarea ei, linia desenată nu se va vedea. Astfel, pentru definirea informațiilor despre stilizarea și culoarea obiectelor care se desenează se folosesc obiectele clasei Paint. Clasa Paint este, ca și clasa Canvas, urmașul direct al clasei Object a limbajului Java și face parte din pachetul android.graphics.

Planul și programa cursului

Modulul 1 – Introducere în animația Android

  • Introducere în animația Android
  • Drawable Animation
  • View Animation

Modulul 2 – Property Animation

  • Introducere în sistemul Property Animation
  • Animarea folosind clasa ObjectAnimator
  • Interpolatori, cadre cheie și clasa ViewPropertyAnimator

Modulul 3 – Desenare și animație 

  • Introducere în desenare
  • Crearea primei grafici
  • Desenarea formelor de bază folosind clasele Canvas și Paint
  • Desenare avansată folosind clasele Canvas și Paint
  • Animarea graficii Canvas

Modulul 4 – Crearea elementelor UI custom

  • Elemente Custom UI
  • Introducere în crearea elementelor custom View
  • Atribute custom View
  • Măsurare și desenare
  • Interacțiune și animație
  • Încapsularea elementului custom View în biblioteca Android 

Modulul 5 – Dezvoltarea jocurilor 2D

  • Introducere în dezvoltarea jocurilor 2D pentru platforma Android
  • Baza pentru desenare – SurfaceView
  • Motorul jocului – game loop
  • Realizarea jocului Jump & Run

Android Animation and Game Development

3 moduri de a obține un job bine plătit

Am pregătit un document în care puteţi descoperi trei moduri de a obţine un job bine plătit pentru profesioniştii care lucrează pe calculator. Descărcați raportul aici

Înscrierea pentru generaţia 2021/22 se face aici.

Pentru a afla totul despre înscriere, click aici.