5.2 Spriteovi u igrama
Što je to sprite?
Sprite je mala slika ili lik koji se crta iznad pozadine u igri i može se pomicati, sudarati s drugim objektima i mijenjati izgled (animacija).
Što je sprite u igrama?
Sprite je slika (bit-mapa) koja je dio veće scene, najčešće u 2D video igrama.
Može predstavljati lika, neprijatelja, metak, novčić, gumb ili bilo koji objekt koji živi u igri.
Animacija spritea nastaje nizom sličica (frameova) – npr. hod likа se crta kao više pozicija tijela i prikazuju se redom.
Često se više spriteova spaja u tzv. sprite sheet, jednu veliku sliku iz koje se izrezuju pojedinačni frameovi.
Kako se spriteovi koriste u igrama?
Logika igre (programski kôd) odlučuje gdje se sprite crta, koliko brzo se pomiče i što se dogodi pri sudaru s drugim spriteom.
Svaki sprite ima svoje osobine: položaj (X, Y), brzinu, smjer, sliku koju trenutno prikazuje (frame animacije).
U korisničkom sučelju (dugmad, ikone) spriteovi se koriste kao male slike na koje možemo reagirati klikom ili dodirom.
Kako se spriteovi koriste na micro:bitu
Na micro:bitu nema pravih grafičkih bitmap spriteova kao na igrama za osobna računala ili mobilne uređaje, jer:
- Ekran je 5×5 LED-ica, dakle samo 25 piksela (točaka), pa je svaki lik ekstremno pojednostavljen.
- Umjesto klasičnih slika, sprite je najčešće definiran samo koordinatama (x,y) i eventualno svjetlinom LED-ice.
Uobičajene specifičnosti u micro:bit okruženju:
- Sprite u MakeCode editoru je objekt koji predstavlja jednu točku ili mali uzorak na 5×5 gridu, npr. igrač, neprijatelj ili metak se prikazuju kao jedna LED-ica koja se pomiče.
- Položaj spritea je u koordinatnom sustavu 0–4 po x i 0–4 po y, pa je cijeli svijet igre vrlo mali i pregledan za djecu.
- Umjesto animacije s više sličica, animacija je često skok LED-ice u susjedno polje ili paljenje/gašenje nekoliko LED-ica u nizu.
- Sudari (collision) se provjeravaju vrlo jednostavno – usporedbom koordinata dvaju spriteova (jesu li na istom polju).
Zbog ograničenja, naglasak je više na logici igre (reakcija na tipke, vrijeme, bodovi) nego na vizualnom bogatstvu spriteova, što je zapravo dobro za uvod u programiranje.
Ostali elementi igara na micro:bitu:
- Rezultat (score) – Score je brojač bodova koji počinje od 0 (osim ako ga ne promijeniš) i raste ili pada tokom igre, ovisno kako je igra napravljena.
- Život (life) – predstavlja koliko puta igrač smije pogriješiti prije nego što igra završi. Na primjer, na početku igre postaviš broj života (npr. 3), a pri sudaru s neprijateljem smanjiš živote za 1. Kada broj života padne na 0, igra ide na game over (kraj igre).
- Kraj igre (game over) – zaustavlja igru: prekidaš kretanje spriteova, više se ne broje bodovi, a obično prikažeš poruku ili animaciju i rezultat. Obično se dešava kada broj života dođe na 0 ili se dogodi neki kritični uvjet u igri, koji mora završiti igru.
Igra: Muholovka
Za igru Muholovka na micro:bitu, glavni lik je jedan sprite (LED-ica) koji se stoji na sredini LED ekrana, a muhe su drugi spriteovi koji se pojavljuju i kreću prema njemu; vizualno su to samo točkice, ali zamisliti ćemo ih kao likove, baš kao i u klasičnim 2D igrama.
Cilj igre je tipkama A i B udarati muhe koje se nalaze odmah lijevo ili desno od našeg glavnog lika. Svaka muha koju udariš donosi ti jedan bod više u rezultatu. Ako muha dođe do glavnog lika (na isto mjesto gdje se on nalazi), oduzima ti se jedan život.
Zadatak:
- Kreiraj varijable lik i muha.
- Dodijeli liku sprite na poziciji (2, 2).
- Dodijeli muhi sprite na poziciji u gornjem redu ekrana, te na slučajno odabranoj poziciji na X osi. Sprite muhe podesi tako da se odbije od ruba ekrana, ako pokuša prijeći preko njega.
- U forever petlji miči muhu tako što ćeš mijenjati njenu X i Y poziciju za slučajnu vrijednost između -1 i 1.
- Ako se muha dotakne glavni lik, smanji broj života za 1.
- Dodaj pauzu na kraju forever petlje, kako bi kontrolirao brzinu muhe.
- Na pritisak dugmeta A, provjeri nalazi li se muha odmah uz glavnog lika (lijevo, gore ili dolje).
- Ako je muha nađena na toj poziciji, obriši sprite muhe, povećaj rezultat za 1, te stvori novu muhu, koristeći iste uvjete kao za prethodnu muhu.
- Na pritisak dugmeta B, napravi sve isto kao za dugme A, samo provjeru napravi desno, gore ili dolje od glavnog lika.
Dodatna pitanja i zadaci:
- Možeš li dodati zvukove za:
- Pogođenu muhu (povećanje rezultata za 1)
- Ugriz muhe (smanjenje života za 1)
Što smo naučili?
- Što su spriteovi: mali likovi ili objekti u igri (točke na 5×5 LED matrici) koje možemo pomicati, sudarati i koristiti kao igrača, neprijatelje ili metke.
- Kako spriteovi rade na micro:bitu: svaki sprite ima koordinate (x,y) od 0 do 4, može se kretati, okretati i provjeravati dodir s drugim spriteovima.
- Glavne Game komponente:
- Logika igre se vrti u petlji (forever), u kojoj pomičemo spriteove, provjeravamo sudare, mijenjamo bodove i po potrebi zaustavljamo igru.
- Score (rezultat): Game komponenta ima brojač bodova koji uglavnom počinje od 0, povećavamo ga kod dobrih poteza i na kraju ga možemo prikazati kao rezultat igre.
- Life (životi): život označava koliko puta igrač smije pogriješiti; pri svakom udarcu ili grešci smanjujemo broj života, a kad padne na 0, igra završava.
- Game over: trenutak kada završavamo igru – zaustavljamo kretanje i logiku, prikažemo poruku ili animaciju i prikažemo konačni rezultat igraču.

