Scratch tutorijal – Napad zombija, prvi deo
Vreme je za još jedan Scratch tutorijal. U ovom, i u narednom tutorijalu ćemo da vas naučimo kako da napravite jednostavnu pucačinu. Kao što smo napomenuli u jednom od naših prethodnih tekstova, da bismo uopšte počeli da pravimo bilo koju, pa i ovu igru, potrebno je da osmislimo kako će da izgleda, i da utvrdimo šta nam je potrebno od grafike i zvukova. Moramo da odredimo tip igre koju ćemo da pravimo, kako će se naš lik kretati i na koji način ćemo da ga kontrolišemo, ko će da budu naši protivnici, šta će uopšte da bude cilj naše igre, i šta ćemo da uradimo po pitanju muzike i zvučnih efekata. Pa, krenimo redom.
Pravićemo pucačinu u kojoj se naš lik brani od zombija koji idu ka njemu. Da bismo pojednostavili programiranje i tok igre postavićemo sledeće uslove:
- Lik kojeg kontrolišemo će da bude u sredini ekrana, i moći će samo da se okreće u krug, ne i da se pomera po ekranu
- Zombiji će da se kreću ka našem liku, i stvaraće se u nekom intervalu koji ćemo da odredimo naknadno
- Zombiji će da se stvaraju na slučajno odabranom mestu na ekranu, ali uvek dalje od našeg lika, kako se igra ne bi odmah završila
- Igra se završava čim našeg lika dotakne bilo koji od zombija
- Cilj igre je da lik što duže preživi, i da sakupi što veći broj poena
Preuzimanje potrebnih fajlova
Kada smo odredili uslove, potrebno je da pronađemo sličice (sprajtove) koje će da predstavljaju našeg lika, zombije, metak koji će naš lik da ispaljuje, i jednu sliku koja će da predstavlja pozadinu. Sve potrebne slike možete potpuno besplatno da preuzmete sa sledećih linkova:
- Lik – kada vam se otvori sajt, kliknite na link Top_Down_Survivor.zip
- Veliki zombi – kliknite na link tds_zombie.zip
- Par zombija – kliknite na link FreeArt_Topdown_Zombies.zip
- Metak – kliknite desnim klikom na sliku metka, pa odaberite opciju Save As, ili Save Image, ili Sačuvaj sliku
- Pozadina – kao i kod metka, kliknite desnim klikom na sliku asfalta, i odaberite Save As, ili Save Image, ili Sačuvaj sliku
Što se tiče zvukova i muzike, možete koristiti koje god zvučne fajlove poželite. Mi smo se odlučili za one koji su potpuno besplatni, odnosno, koje su njihovi autori postavili na internet bez ikakvih ograničenja. U igri ćemo koristiti:
- Zvuk pucnja – kliknite na link sounds.zip
- Muzika – kada vam učita lista pesama, kliknite na bilo koju od njih, a zatim na zeleno dugme na kojem piše Listen now, kako biste čuli pesmu pre preuzimanja. Kada pronađete neku za koju mislite da bi se uklopila u igru koju pravimo, kliknite na plavo dugme na kojem piše Download as MP3. Mi smo se odlučili za pesmu Killers.
Organizacija fajlova po folderima
Pošto smo preuzeli sve potrebne fajlove, raspakovaćemo na desktop one koji su u *.zip arhivama, i rasporedićemo ih tako da možemo lakše da se snađemo kada budemo želeli da ih učitamo u Scratch editor. Sve što je vezano za našu igru, smesitćemo u folder koji se zove Igra. U okviru njega, sve slike smeštamo u folder koji ćemo da nazovemo Grafika. Unutar ovog foldera pravimo dva foldera. Jedan nazivamo Pozadine, a drugi Sprajtovi. U okviru foldera Sprajtovi, pravimo foldere Lik, Veliki zombi, Srednji zombi, Mali zombi, Metak.
U folder Pozadine, prebacićemo sliku asfalta. U folder Lik, prebacićemo samo slike iz foldera Shoot, pošto se u njemu nalazi animacija pucanja iz pištolja. Mesto foldera Shoot možete da vidite na narednoj slici.
Sledeće što prebacujemo, jesu slike vezane za animirano kretanje velikog zombija. Pošto će naša igra imati mnogo pokretnih sprajtova, prebacićemo samo nekoliko slika vezanih za kretanje velikog zombija. U folder Veliki zombi prebacujemo slike skeleton-move_1, skeleton-move_2, skeleton-move_4, skeleton-move_8.
Iz foldera sa animacijama srednjeg i malog zombija, prebacujemo fajlove ZombieWalk_normal_scaled_fast.gif i ZombieWalk_odd_fast.gif, a u folder Metak,prebacujemo sliku metka, odnosno, fajl blt0.gif.
Na sličan način organizujemo i zvučne fajlove. U folderu Igra, pravimo folder Muzika i zvuci, i u njega prebacujemo pesmu koju smo preuzeli sa interneta, i zvučni fajl shotty.wav (nalazi se u *.zip arhivi sounds.zip).
Učitavanje grafike
Pokrenućemo Scratch, i obrisati sliku mačke (desni klik na mačku, pa na opciju Delete). Najpre ćemo da dodamo pozadinu (backdrop). Da bismo to uradili, potrebno je da kliknemo na ikonu otvorene fascikle, a zatim i da pronađemo folder Grafika, u njemu folder Pozadina, i u njemu sliku pozadine.
Kada učitamo pozadinu, kliknućemo na karticu / tab Backdrops, koji se nalazi pri vrhu sredine ekrana. To radimo da bismo obrisali suvišnu belu pozadinu, ali i da bismo raširili pozadinu koju smo dodali. Kada obrišemo belu pozadinu, kliknućemo na ikonu za selekciju (ikona šake), koja se nalazi levo i gore od središnjeg dela ekrana. Zatim ćemo da razvučemo selekciju preko slike asfalta. Kada se pojavi plavi okvir, kliknućemo na tačku koja se nalazi dole i u sredini, i razvući ćemo sliku, tako da pokrije sve delove.
Pozadina je podešena. Preostaje nam da učitamo sprajtove našeg lika, zombija, i metka. Sve sprajtove učitavamo preko ikone fascikle, koja se nalazi dole i desno od ekrana igre.
Kada se otvori prozor za izbor sprajtova, pronalazimo fajl survivor-shoot_handgun_0.png, koji učitavamo klikom na Open. Pošto učitamo prvi sprajt, kliknućemo na karticu / tab Costumes, u okviru kog dodajemo preostala dva fajla, survivor-shoot_handgun_1.png i survivor-shoot_handgun_2.png.
Na isti način dodajemo i sprajt velikog zombija, i dopunjavamo ga preostalim fajlovima vezanim za njegovo kretanje. Pri tome vodimo računa da se, u okviru taba / kartice Costumes, na prvom mestu nalazi sprajt skeleton-move_1, zatim skeleton-move_4, skeleton-move_2, i na kraju, skeleton-move_8. Raspoređujemo ih na taj način, da bi animacija kretanja izgledala što prirodnije.
Kad je reč o sprajtovima srednjeg i malog zombija, njih najpre moramo da rotiramo za 90 stepeni. To možemo da uradimo na nekoliko načina. Mi smo se odlučili za ovaj sajt. Kada se sajt otvori, kliknućemo na Browse, da bismo pronašli sliku koju želimo da rotiramo, a zatim na Upload.
Ovaj postupak ponavljamo i za sliku drugog, malog zombija. Zašto nam je bio potreban i ovaj korak? Zbog toga što u Scratchu svaki sprajt mora da gleda u desno, kako bi ispravno mogao da se animira. Ovo je naročito važno kod igara sa pogledom iz ptičije perspektive, a mi sada pravimo baš takvu igru.
Sprajtove srednjeg i malog zombija dodajemo na sličan način kao sprajtove velikog zombija, s tom razlikom da su kostimi (dodatni sprajtovi za kretanje) srednjeg i malog zombija već sadržani u zarotiranom *.gif fajlu. Potrebno je da samo smanjimo broj kostima u oba sprajta, da bi Scratch radio bez seckanja. Kod srednjeg zombija (beli rukavi), zadržavamo kostime:
ZombieWalk_normal_scaled_fast-1
ZombieWalk_normal_scaled_fast-3
ZombieWalk_normal_scaled_fast-5
ZombieWalk_normal_scaled_fast-7
Kod malog zombija (plavo-bela kapa), zadržavamo kostime:
ZombieWalk_odd_fast-1
ZombieWalk_odd_fast-3
ZombieWalk_odd_fast-5
ZombieWalk_odd_fast-7
Pošto smo dodali sprajtove lika i zombija, malo ćemo da preuredimo njihov raspored na ekranu, zbog preglednosti. Prevući ćemo sprajtove zombija u uglove ekrana igre, i ostaviti našeg lika pri sredini ekrana. Promenićemo veličinu glavnog lika i velikog zombija, pošto su značajno veći od sprajtova druga dva zombija. Zatim ćemo da kliknemo na sprajt našeg lika, potom da pređemo na karticu Scripts, i u njoj da kliknemo na grupu blokova Looks. U ovoj grupi blokova nalazimo blok Blok za podesavanje velicine, u kojem umesto broja 100, ukucavamo broj 35, i onda kliknemo na taj isti blok. Na taj način smo smanjili našeg lika. Isto ćemo da uradimo i sa sprajtom velikog zombija.
Kada učitamo sve sprajtove, promenićemo im imena, da bismo ih lakše pronalazili prilikom programiranja. Imena sprajtova menjamo tako što kliknemo na željeni sprajt, zatim na plavo dugme u gornjem levom uglu, i promenimo tekst u onaj koji želimo. Glavnog lika ćemo nazvati vojnik, velikog zombija veliki zombi, srednjeg srednji zombi, a malog zombija mali zombi.
Programiranje glavnog lika
Da bismo programirali glavnog lika, kliknućemo na njegov sprajt, a zatim na grupu blokova Events. Iz ove grupe blokova, najpre prevlačimo blok When Clicked, pošto on označava početak igre. Zatim prelazimo u grupu blokova Control, i prevlačimo blok Repeat Until. Iz grupe blokova Motion prevlačimo blokove Go to x <> y <>, i Point towards. Iz grupe blokova Sensing, tri puta prevlačimo blok Touching. Iz grupe Operators, dva puta prevlačimo blok Or. Tako smo dobili blokove koji su nam potrebni za početak programiranja. Spojićemo ih na način prikazan na sledećoj slici.
Ako pokrenemo igru, klikom na blok When Clicked, videćemo šta smo zapravo programirali. Prvo, na početku svake igre, naš vojnik će uvek biti u sredini ekrana. Ovo smo stavili ukoliko tokom igre slučajno prevučemo vojnika na neko drugo mesto. Drugo, rekli smo vojniku da se uvek okreće tamo gde je strelica miša, i da to radi sve dok ga ne dodirne neki od zombija (bilo koji, zato što smo koristili blok Or).
Zaustavićemo igru, klikom na crveni krug, koji se nalazi desno i gore od prozora igre. Kliknućemo na karticu / tab Sounds, učitati dva zvučna fajla koje smo preuzeli sa interneta, i obrisati fajl pop, pošto nam neće biti potreban u igri koju pravimo.
Vratićemo se u karticu / tab Scripts, i preći u Sound grupu blokova. Iz ove grupe blokova dva puta prevlačimo blok Play sound <>. Klikom na strelicu u prvom bloku, biramo najpre *.mp3 fajl (u našem slučaju, to je pesma Killers.mp3), a u drugom zvučni efekat pucnja (shoty.wav). Sada ćemo da pređemo u Sensing grupu blokova, i da prevučemo blok Mouse down, a zatim u Control grupu blokova, i da prevučemo blokove Wait, i If <> then. Poslednja grupa blokova koja nam je potrebna je Looks. Iz ove grupe blokova prevlačimo blokove Switch costume to <> i Next costume. Blokove spajamo kao na sledećoj slici. Vodite računa o brojčanim vrednostima.
Značenje ovog programa je sledeće:
Kada kliknem na dugme za pokretanje igre, prvo se pokreće muzika. Zatim se resetuju mesto i kostim mog lika. Lik će se uvek okretati licem prema strelici miša, sve dok ga ne dodirne neki od zombija. Takođe , sve dok pritiskam levi taster miša, pokretaće se animacija za pucanje, i čuće se pucanj. I ovo će se dešavati sve dok mog lika ne dodirne neki od zombija.
Poslednji korak u današnjem programiranju naše Scratch igre, biće da dodamo uslov za kraj igre. Videli smo da će naš lik da puca i da se okreće, sve dok ga ne dodirne neki od protivnika. A šta se dešava kada ga dodirne neki od protivnika? U trenutnoj postavci programa, ništa osim zaustavljanja lika, i njegove nemogućnosti da puca. Pošto želimo da se igra završi kada protivnici dodirnu našeg lika, moramo to i da programiramo. Preći ćemo u grupu blokova Control, i prevući blok Stop all. Spojićemo ga sa ostalim blokovima, tako da bude na samom dnu.
To bi bilo sve za današnje druženje. Budite sa nama i sledeće sedmice, kada ćemo da nastavimo programiranje naše igre. :)