Scratch tutorijal – Igra izbegavanja

scratch-tutorijal-igra-izbegavanja

Scratch tutorijal – Igra izbegavanja

Scratch tutorijal igra izbegavanja clanak320

U jednom od naših ranijih članaka, upoznali smo vas sa Scratchom, programskim jezikom namenjenim deci. Danas ćemo da vam pokažemo kako da, uz pomoć Scratcha, napravite svoju igru, i kako da je pokažete svojim drugovima.

Prvi korak jeste odlazak na zvaničnu stranicu Scratcha. Kada otvorimo zvanični sajt, potrebno je da kliknemo na opciju Create, kako bismo započeli sa programiranjem igre.

Scratch tutorijal igra izbegavanja clanak32b

Pre no što krenemo sa programiranjem, obrisaćemo sličicu mačke. To ćemo da uradimo tako što ćemo desnim klikom da kliknemo koju od dve sličice mačke. U meniju koji se otvori, biramo delete. Sada možemo da dodamo novu sličicu sa kojom ćemo da pravimo igru. Da bismo to uradili, kliknućemo na prvu ikonicu pored teksta New sprite.

Scratch tutorijal igra izbegavanja clanak32c

Otvoriće se prozor za izbor sprajtova, odnosno, likova koje ćemo koristiti u našoj igri. U ovom prozoru ćemo da pronađemo sličicu bejzbol loptice, i da kliknemo na nju, a zatim i na dugme OK, koje se nalazi u donjem desnom delu ekrana.

Scratch tutorijal igra izbegavanja clanak32d

Pošto je za potrebe naše igre bejzbol loptica prevelika, smanjićemo je. To radimo tako što kliknemo na ikonu Shrink, a zatim 10 puta kliknemo na lopticu.

Scratch tutorijal igra izbegavanja clanak32e

Smanjili smo lopticu, a sada ćemo i da programiramo njeno kretanje, preko strelica na tastaturi. Ovo programiranje je potrebno zato što Scratch ne zna šta mi želimo da radimo sa lopticom koju smo dodali. U desni deo ekrana ćemo prevući neophodne blokove za kretanje. Events, a zatim ćemo iz njega da prevučemo blok za početak igre, When clicked.

Scratch tutorijal igra izbegavanja clanak32f

Sledeće što bi trebalo da uradimo je da kliknemo na Control, odakle ćemo četiri puta da prevučemo blok If <__> then, zatim na Sensing, odakle ćemo četiri puta da prevučemo blok key space pressed, i na kraju na Motion, odakle po dva puta da prevučemo blokove Change x by 10i Change y by 10. Ako ste uradili sve ovo, na kraju bi u desnom delu ekrana trebalo da dobijete ovako nešto.

Scratch tutorijal igra izbegavanja clanak32g

Ove blokove ćemo upotrebiti za pravljenje programa za kretanje naše lopte. Logika je sledeća: želimo da Scratch proveri koju smo strelicu pritisnuli, i da pomeri lopticu u tom pravcu. Pošto loptica može da se kreće u četiri pravca (levo, desno, gore, dole), potrebne su nam četiri provere.

Da bi Scratch to uradio, ove blokove moramo da spojimo na neki način. Recimo da prvo želimo da proverimo da li smo pritisnuli gornju strelicu. Scratch bi trebalo da proveri da li je pritisnuta gornja strelica, i, ako jeste, da pomeri lopticu za 10 piksela na gore. Levim klikom na spaceotvaramo padajući meni, u kojem biramo up arrow. Odnosno:

Scratch tutorijal igra izbegavanja clanak32h

Istom logikom pravimo i ostale blokove, tako da je krajnji rezultat (posle spajanja svih blokova) ovakav:

Scratch tutorijal igra izbegavanja clanak32i

Brojevi koji ispred sebe imaju minus, govore Scratchu da pomeri našu lopticu dole (change y by -10) ili u levu stranu (change x by -10), a oni koji ispred sebe nemaju minus, da pomeri našu lopticu gore (change y by 10) ili u desnu stranu (change x by 10). Sve je na kraju spojeno saWhen clicked, da bismo uopšte mogli da koristimo strelice za kretanje u toku igre.

Ako pokrenemo igru, klikom na When clicked, ili zelenu zastavicu do velikog crvenog dugmeta pri sredini vrha ekrana, videćemo da se ništa ne dešava. To je zbog toga što Scratch samo jednom proveri da li je pritisnuto neka od strelica, i, pošto nije, zaustavi program. Da bi Scratch stalno proveravao da li je i šta pritisnuto, potrebno je da dodamo još jedan blok – Forever. Ovaj blok se nalazi u Control grupi blokova. Kada ga dodamo, sve ostale blokove ćemo smestiti u njega, kao na sledećoj slici.

Scratch tutorijal igra izbegavanja clanak32j

Ako sada pokrenemo igru, videćemo da naše kontrole rade, i da možemo da pomeramo lopticu. Međutim, kad dođemo do kraja ekrana, loptica se ne vidi u potpunosti. Da se to ne bi dešavalo, prvo  ćemo da zaustavimo program, klikom na veliko crveno dugme, pri vrhu sredine ekrana, i. Zatim ćemo da dodamo blok If on edge, bounce, koji se nalazi u Motion grupi blokova. Pored toga ćemo da dodamo i blok za resetovanje pozicije naše loptice, odnosno, način da naša loptica uvek započinje igru sa istog mesta. Blok kojim to postižemo se takođe nalazi u grupi Motion, i zove se go to x: 0 y:0. Ukoliko umesto nula stoje drugi brojevi, kliknite na njih, i promenite ih u nule.

Scratch tutorijal igra izbegavanja clanak32k

Ako nekoliko puta pokrenemo igru, pomeramo lopticu do kraja ekrana, i zatim zaustavimo igru, videćemo da rade svi delovi našeg programa.

Sada je na redu dodavanje neprijatelja kojeg moramo da izbegavamo. Dodaćemo novi sprajt, na isti način kao što smo to radili sa našom bejzbol lopticom. Ovog puta ćemo da izaberemo košarkašku loptu, a zatim ćemo da kliknemo na OK. Pošto dodamo košarkašku loptu, pomerićemo je u stranu, da nam ne zaklanja bejzbol lopticu. Zatim ćemo da smanjimo njenu veličinu, na isti način kako smo to uradili sa bejzbol lopticom.

Kada smo na ovaj način pripremili košarkašku loptu, ostaje samo da programiramo njeno kretanje. Iz Events grupe blokova prevlačimo blokWhen clicked, iz Control grupe blokova prevlačimo Forever (iz istog razloga kao kod kretanja bejzbol loptice), a iz Motion grupe blokova prevlačimo blokove Move 10 steps, If on edge bounce, i blok Point in direction 90. U ovom poslednjem bloku, menjamo 90 u 45, da bismo imali bolje odbijanje loptice.

Scratch tutorijal igra izbegavanja clanak32l

Dodali smo loptu koju moramo da izbegavamo. Međutim, kao i kod kretanja, i ovde moramo da saopštimo Scratchu da želimo da se igra završi kada se lopte sudare. Za to će nam biti potrebni blokovi When clicked (Events grupa blokova), Forever, If <__> then, i Stop all (svi u Controlgrupi blokova), i blok touching? (Sensing grupa blokova). Pored ovih blokova, možemo da dodamo i uslov za resetovanje mesta košarkaške lopte, na isti način kao što smo to uradili kod bejzbol loptice.

Kada prevučemo sve ove blokove, spajamo ih na sledeći način.

Scratch tutorijal igra izbegavanja clanak32lj

Na ovaj način smo rekli:

Sve do kraja igre proveravaj da li je košarkaška lopta dodirnula bejzbol lopticu. Ako jeste, zaustavi igru.

Pokrenućemo igru, i videti da sve radi onako kako bi trebalo.

Pošto je naša igra previše laka, malo ćemo da izmenimo program košarkaške lopte. Dodaćemo pojavljivanje novih lopti. Za to su nam potrebni blokovi Forever, Create a clone of myself, Wait 1 secs, When I start as a clone (svi u Control grupi blokova), Hide i Show (nalaze se u Looksgrupi blokova). Posle spajanja blokova, dobićemo ovakav program:

Scratch tutorijal igra izbegavanja clanak32m

Prvi deo programa sakriva (hide) košarkašku loptu i stvara novu, na svake tri sekunde. Drugi deo programa prikazuje (show) tako stvorene košarkaške lopte, i pokreće ih onako kako smo ranije programirali. Treći deo programa je isti, i sadrži uslov za završetak igre. Međutim, ako bismo sad pokrenuli igru, videli bismo da se ona ne završava, iako se sudaramo sa ostalim loptama. To ćemo da ispravimo kao na sledećoj slici.

Scratch tutorijal igra izbegavanja clanak32n

Prethodni uslov nije bio dobar, zato što je proveravao da li se sakriveni original sudara sa bejzbol lopticom. Pošto to ne može da se dogodi u našem programu, igra se nije završavala onda kada smo to očekivali. Ovom izmenom smo dodali uslov da se proverava da li se bejzbol loptica sudara sa kopijama košarkaške lopte, koje se stvaraju na svake tri sekunde.

Poslednji korak u pravljenju naše igre je dodavanje tajmera i načina za ubrzavanje kopija košarkaške lopte. Ovo radimo pomoću brojača, odnosno varijabli, koje moramo da napravimo. Prvo ćemo da kliknemo na košarkašku loptu, pošto programiramo nju. Zatim ćemo da kliknemo na grupu blokova Data, a zatim na Make variable. Napravićemo dva brojača – jedan za povećanje brzine, a drugi će nam poslužiti kao tajmer.

Scratch tutorijal igra izbegavanja clanak32nj

Pošto smo napravili ove varijable, prevlačimo blokove Set Brzina to 0 (ovo prevlačimo dva puta), Change Brzina by 1 (takođe dva puta), i blokBrzina. Na početak prvog programa, odmah ispod bloka When clicked a iznad bloka Hide, dodajemo blok Set Brzina to 0, i menjamo nulu u 10. Ovo će biti početna brzina košarkaške lopte. Zatim, ispod bloka Wait 3 secs, dodajemo blok Change Brzina by 1. Umesto jedinice, ukucaćemo 0.5. Ovo će biti promena u brzini košarkaške lopte, koja će se primenjivati na svake tri sekunde, pošto ide posle bloka Wait 3 secs.

Scratch tutorijal igra izbegavanja clanak32o

Sada promenu u brzini moramo da primenimo na svaku kopiju košarkaške lopte. Prevući ćemo blok Brzina unutar bloka Move 10 steps, odnosno, preko broja 10. Ovim potezom smo rekli Scratchu da brzina kretanja košarkaških lopti bude onolika kolika je trenutna brzina.

Scratch tutorijal igra izbegavanja clanak32p

Ostaje još da dodamo program za tajmer, odnosno merenje vremena. Dodaćemo novi When clicked blok, jedan Forever blok, i jedan Wait 1 secs blok. Zatim ćemo da kliknemo na tekst Brzina u nepovezanom bloku Set Brzina to 0, pa ćemo iz padajućeg menija da odaberemo Tajmer. Isto ćemo da uradimo i sa blokom Change Brzina by 1. Kada smo to uradili, povezaćemo sve blokove kao na sledećoj slici.

Scratch tutorijal igra izbegavanja clanak32q

Ovaj novi program najpre resetuje tajmer na početku svake igre, a zatim kreće da odbrojava na svaku sekundu. Ako pokrenemo igru, videćemo da se košarkaške lopte kreću onako kako očekujemo od njih, da tajmer odbrojava, i da svi ostali uslovi rade.

Na kraju, ako to želite, možete da dodate neku pozadinu. Kliknite na ikonu planine, ispod teksta New backdrop, i odaberite jednu od ponuđenih slika, ili dodajte svoju, klikom na ikonu otvorenog foldera.

Scratch tutorijal igra izbegavanja clanak32r
Scratch tutorijal igra izbegavanja clanak32s
Scratch tutorijal igra izbegavanja clanak32t

Da biste sačuvali svoju igru, prvo morate da se registrujete. To radite klikom na Sign in to save, a zatim, u prozorčiću koji se otvori na sredini ekrana, kliknite na Or Join Scratch, čime ćete započeti sa registracijom. Kada vam stigne mail, aktivirajte svoj nalog, kako biste mogli da podelite svoju igru sa svojim drugovima.

I to je sve. :)