Kodu Game Lab tutorijal – Sakupljanje jabuka
U današnjem tutorijalu ćemo zajedno da napravimo još jednu igru. Ovog puta, koristićemo program Kodu Game Lab. Ako se do sada niste sretali sa ovim programom, predlažemo vam da pročitate naše prethodne tekstove onjemu. A ukoliko, iz bilo kog razloga, još uvek nemate Kodu Game Lab na svom računaru, predlažemo vam da posetite zvanični sajt, sa kojeg možete da preuzmete instalaciju programa Kodu Game Lab. Potrebno je da kliknete na zeleno dugme na kojem piše Get Kodu, a koje se nalazi u gornjem levom uglu strane. Otvoriće se nova strana, na kojoj ćete da kliknete na crveno dugme na kojem piše Download. Kada završite sa preuzimanjem, instalirajte Kodu Game Lab, i počnite da programirate igru sa nama. :)
Pošto pokrenemo Kodu Game Lab, kliknućemo na opciju New World. Zatim ćemo da oblikujemo svet u kojem će se odvijati igra. Kliknućemo na ikonu zelene četkice, a zatim na skupinu plavih ikona, u gornjem levom uglu, kako bismo odredili oblik terena koji ćemo da stvaramo klikom. U meniju koji se bude otvorio, kliknućemo dvaput brzo na ikonu kruga. Preko strelica na tastaturi ćemo da povećamo veličnu naše četkice (treperavi ljubičasti krug), da bismo jednostavnije napravili naš svet.
Odlučili smo se da četkicu kojom pravimo teren, povećamo toliko da bude dva do tri puta veća od već postojećeg terena. Zatim ćemo jednim klikom da dodamo ostatak terena. Naravno, ne morate da pravite svet poput našeg, ali vodite računa o tome da ne bude prevelik.
Sada ćemo da dodamo brdo, i to u sredinu našeg sveta. Najpre ćemo da promenimo ugao gledanja, kako bismo mogli bolje da ocenimo koliko je visoko brdo koje dodajemo. Da bismo to uradili, pritisnućemo i držati taster Space, a zatim pritisnuti i držati desni klik, i pomerati miš. Kada nađemo dobar ugao gledanja, krenućemo sa dodavanjem brda. Da bismo dodali brdo, prvo ćemo da kliknemo na prvu ikonu posle ikone četkice. Takođe ćemo, kao kad smo prvi put birali oblik četkice, da izaberemo okruglu četkicu. Zatim ćemo da postavimo četkicu u sredinu terena, i da je smanjimo upotrebom strelica na tastaturi. Na kraju, pošto smo učinili sve to, zadržaćemo levi klik, sve dok se teren u sredini našeg sveta ne podigne onoliko koliko to želimo. Ukoliko se teren podigne previše, možete da ga spustite ako malo zadržite desni klik, ili da ga ispeglate, ukoliko malo pritisnete i zadržite točkić miša.
Na sledećim slikama možete da vidite kako je teklo pravljenje našeg brda. Kao što možete da primetite, povremeno smo menjali ugao gledanja (kombinacija pritiskanja i držanja tastera Space, i klikova miša). Ne brinite ukoliko vaše nije ni nalik našem. Bitno je da na kraju u sredini sveta imate brdo koje nije previsoko, i koje je malo ispeglano.
Pošto smo dodali (i uglačali) naše brdo, na njega ćemo da stavimo drvo. Da bismo to uradili, kliknućemo na ikonu Kodua (mala robotska glava, četvrta po redu), a zatim u samu sredinu našeg brda, pošto želimo da se drvo nađe na sredini brda koje smo pravili. Pojaviće se kružni meni, u kojem ćemo da kliknemo na sličicu drveta. To će da otvori još jedan meni, pa ćemo u njemu da kliknemo na najveće drvo koje nam se nudi. Na ovaj način smo dodali drvo u našu igru.
Možda se pitate zašto nam je uopšte potrebno drvo. Ne brinite, razlog će uskoro postati očigledan.
Pošto smo dodali drvo, dodaćemo i naše likove – Kodua, kojim ćemo da upravljamo mi, i Cycles robota, koji će da bude naš protivnik. Robote dodajemo na sličan način kao i drvo, samo je potrebno da odaberemo pravo mesto na kojem će se naći. Postavićemo ih tako da se nađu sa suprotnih strana drveta, kao na sledećoj slici.
Primećujete da smo našeg protivnika obojili crvenom bojom. Sama boja je slučajno odabrana, ali smo vodili računa o tome da se razlikuje od boje Kodua. Boju smo promenili, tako što smo postavili strelicu miša preko našeg protivnika, a zatim smo pritiskom na strelice na tastaturi, odabrali crvenu boju.
Napravili smo svet i brdo u njemu. Dodali smo drvo, i dva lika. Preostaje da programiramo našu igru. Da li ste se zapitali kakvu smo to igru zamislili? Ukoliko jeste, sledi odgovor na to pitanje. Želimo da naše drvo stvara jabuke, a da se naša dva robota takmiče u tome ko će prvi da sakupi i pojede deset jabuka. Zamisao je jednostavna, pa, da vidimo kako ćemo da je pretočimo u program.
Programiranje drveta
Prvi korak u programiranju jeste programiranje drveta da stvara jabuke. Da bismo to učinili, kliknućemo desnim klikom na drvo, i odabrati opciju Program. Ukoliko vam se ta opcija ne pojavljuje, pogledajte da li je ikona Koduove glave uokvirena žutim zagradama. Ako nije, kliknite na nju, i pokušajte ponovo da kliknete na drvo.
Sada moramo da se zapitamo da li želimo da naše drvo stvori novu jabuku samo onda kada roboti pokupe onu koju je prethodno stvorilo, ili želimo da stvara jabuke na svake dve ili tri, ili više sekundi. Recimo da želimo da programiramo drvo da stvara nove jabuke, tek pošto roboti pokupe onu koja je prethodno stvorena. Da bismo to programirali, kliknućemo na prvi plus (pored teksta When). Zatim ćemo da kliknemo na opciju See. Ponovo ćemo da kliknemo na prvi plus, pa onda na Objects, i na kraju na Apple. Ako bismo se zaustavili ovde, uslov u naše programu bi glasio:
Kada drvo vidi jabuku…
Međutim, mi želimo da drvo stvara jabuke onda kada ih ne bude videlo, a ne svaki put kada ih vidi. Zato ćemo ovaj uslov da dopunimo još jednim. Ponovo ćemo da kliknemo na plus, i da odaberemo opciju Not. Tako smo promenili značenje uslova:
Kada drvo NE VIDI jabuku…
To je uslov, a šta želimo da se dogodi kada se taj uslov ostvari? Kada drvo ne vidi jabuku, to znači da ju je pokupio jedan od robota, pa želimo da drvo stvori novu jabuku. Da bismo to programirali, kliknućemo na drugi plus (desno od teksta Do), zatim na Actions, pa na Launch. Zašto na Launch, a ne na Create? Zato što želimo da drvo ne samo stvara, već i ispaljuje jabuke što dalje od sebe.
Ponovo ćemo da kliknemo na plus pored teksta Do, i da odaberemo opciju Objects, a zatim Apple. Ako želimo da odredimo na koji će način drvo da ispaljuje jabuke, možemo još jednom da kliknemo na plus pored teksta Do, i da odaberemo opciju High.
Značenje ovog programskog reda je sledeće:
Kada drvo ne vidi jabuku, ispaliće jednu jabuku, i to sa lûkom.
Programiranje kretanja Kodua
Sada moramo da programiramo i robote. Krenućemo od Kodua. Prvo ćemo da programiramo njegovo kretanje. Kao kod programiranja drveta, kliknućemo desnim klikom na Kodua, i odabrati opciju Program. Potom ćemo (opet, kao kod programiranja drveta) da kliknemo na prvi plus, desno od teksta When. Odabraćemo Keyboard, zato što želimo da Koduom upravljamo putem tastature. Zatim ćemo opet da kliknemo na prvi plus, i da odaberemo WASD. Ukoliko želite da upravljate Koduom preko strelica na tastaturi, odaberite opciju Arrows.
Šta želimo da se dogodi kad pritisnemo WASD tastere? Želimo da se Kodu kreće. Zato ćemo da kliknemo na drugi plus, desno od teksta Do, i da najpre odaberemo opciju Move. Pošto to učinimo, naš programski red, koji određuje kretanje Kodua, izgledaće ovako:
Programiranje Koduovog sakupljanja jabuka
Da bi Kodu mogao da sakuplja i jede jabuke, i na kraju pobedi svog protivnika, moramo to da programiramo. Dok smo u programiranju Kodua, preći ćemo u drugi programski red, i kliknuti na prvi plus. Odabraćemo opciju Bumped, a zatim, ponovnim klikom na prvi plus, opciju Objects, pa Apple. Zatim ćemo da kliknemo na drugi plus, i odabrati opciju Eat. Posle ovog programiranja, naš drugi programski red će da izgleda ovako:
Programiranje Koduovih poena i pobede
Uslov za pobedu programiramo iz dva dela. Najpre moramo da programiramo način za merenje broja jabuka koje je Kodu sakupio i pojeo. To radimo tako što pređemo u treći programski red, zatim kliknemo na drugi plus, desno od teksta Do. U meniju koji se otvori, biramo opcijuGame, a iz nje, opciju Score. Potom ćemo ponovo da kliknemo na isti plus, a onda na opciju White (jer je naš Kodu bele boje). Još jednom ćemo da kliknemo na drugi plus, i da odaberemo opciju 01 point (jer želimo da za svaku jabuku dobije po jedan poen). Kada sve ovo programiramo, malo ćemo da povučemo treći programski red u desnu stranu. To radimo zato što želimo da se ovaj red odigra samo ako se odigra onaj iznad njega. Odnosno, želimo da Kodu dobije jedan poen, samo ako prethodno sakupi i pojede jednu jabuku.
Kada će Kodu da pobedi svog protivnika? Pobediće ga onda kada sakupi deset jabuka. Ukoliko smatrate da je broj prevelik, možete da ga smanjite na, recimo, sedam, ili pet, ali imajte u vidu to da će tada i igra verovatno biti kraća.
Kliknućemo na prvi plus u četvrtom programskom redu, i odabrati opciju Scored. Zatim ćemo ponovo da kliknemo na prvi plus, i da odaberemo opciju Scores (sa ikonom šarene kofe), a potom opciju White. Još jednom ćemo da kliknemo na prvi plus, i da odaberemo opciju 10 points. Tako smo postavili uslov, pa preostaje da još programiramo ono što će da se odigra kada se taj uslov ispuni. Da bismo to uradili, kliknućemo na drugi plus, i odabrati najpre Game, a potom i Win.
Programiranje kretanja protivnika
Preostaje nam još programiranje protivnika. Izaći ćemo iz programa Kodua, pritiskom na taster Esc, a zatim ući u programiranje protivnika. Pošto će se naš protivnik kretati sam od sebe, programiraćemo ga na sledeći način. Klikom na prvi plus biramo opciju See. Zatim, ponovnim klikom na prvi plus, biramo opciju Objects, pa onda opciju Apple. Klikom na drugi plus, biramo opciju Move, a ponovnim klikom na drugi plus, biramo opciju Toward. Na ovaj način smo programirali:
Kada protivnik vidi jabuku, krenuće ka njoj.
Programiranje protivnikovog sakupljanja jabuka
Poslužićemo se istom logikom koju smo koristili kod programiranja Koduovog sakupljanja jabuka. Klikom na prvi plus biramo opciju Bumped, a drugim klikom na prvi plus opcije Objects i Apple. Klikom na drugi plus, biramo opciju Eat.
Programiranje protivnikovih poena i pobede
I ovde možemo da upotrebimo logiku koju smo koristili kod programiranja Koduovih poena i pobede. Pošto će pobednik da dobija poene kad sakupi i pojede jabuke, kliknućemo na drugi plus u trećem redu, i odabrati opcije Game, Score. Zatim ćemo ponovo da kliknemo na drugi plus, i da odaberemo opciju Red (jer je naš protivnik crvene boje). Na kraju, kliknućemo ponovo na drugi plus, i odabrati opciju 01 point. Takođe ćemo, kao i kod Kodua, da uvučemo treći red, pošto želimo da protivnik dobija poene samo kada sakupi jabuke.
Što se tiče protivnikove pobede (odnosno, našeg poraza), i ovde možemo da primenimo način razmišljanja koji smo primenili kod programiranja Koduove pobede. Klikom na prvi plus u četvrtom redu, biramo opciju Scored. Ponovnim klikom, biramo najpre šarenu kofu sa tekstom Scores, a zatim Red. Poslednjim klikom na prvi plus, biramo 10 points Klikom na drugi plus, biramo opciju Game, a potom End.
Na ovaj način smo završili programerski deo u stvaranju naše igre. Pritiskom na taster Esc, izlazimo iz programiranja protivnika, a još jednim pritiskom na isti taster, započinjemo našu igru.
Ako vam se učini da se neki od vaših likova kreće presporo, dovoljno je da kliknete desnim klikom na tog lika, i odaberete opciju Change Settings, u okviru koje možete da povećate Forward Speed Multiplier (brzina kretanja), Turning Speed Multiplier (brzina skretanja), i Forward Acceleration Multiplier (ubrzanje). Pored ove promene, igru možete da obogatite i novim protivnicima, preprekama, ili novim drvećem koje će izbacivati jabuke. Slobodno pustite mašti na volju, i pokušajte da nadogradite ono što smo vam danas pokazali. :)