Scratch tutorijal – Napad zombija, treći deo

scratch-tutorijal-napad-zombija-treci-deo

Scratch tutorijal – Napad zombija, treći deo

scratch-tutorijal-napad-clanak42a

U današnjem tutorijalu završavamo sa programiranjem igre. Ako ste po prvi put sa nama, a želeli biste da pratite uputstva u ovom tutorijalu, predlažemo vam da pročitate i uradite ono o čemu smo pisali u prethodna dva teksta.

 

Programiranje preostalih zombija

Pošto smo programirali ponašanje velikog zombija, preostaje nam da programiramo ponašanje srednjeg i malog zombija. Budući da će i oni da se ponašaju na sličan način kao veliki zombi, ne moramo da prevlačimo i spajamo pojedinačne blokove, kao što smo to uradili kod velikog zombija. Dovoljno je samo da prevučemo program velikog zombija na sprajtove srednjeg i malog zombija (kliknite za veću sliku).

scratch-tutorijal-napad-clanak42b

Preći ćemo najpre na sprajt srednjeg zombija. Primetićete da su svi delovi programa nabacani jedni preko drugih. Da bismo program ovog zombija učinili preglednijim, kliknućemo desnim klikom bilo gde na sivu površinu ispod ili desno od nesređenih blokova. U meniju koji se bude otvorio, odabraćemo opciju Clean up (kliknite na sliku za uveličani prikaz).

scratch-tutorijal-napad-clanak42c

Malo ćemo da izmenimo program ovog zombija, kako ne bi bio potpuno isti kao program velikog zombija, i kako bi naša igra bila malo zanimljivija. Recimo da želimo da se srednji zombi pojavljuje na gornjoj ivici ekrana, ali da nikad ne znamo sa koje će strane (leve, desne, ili središnje) tačno da dođe. Pored toga, želimo da se kreće brže od velikog zombija. Sve ovo što smo naveli, postižemo malim promenama u postojećim blokovima. Prvo ćemo da prevučemo blok Pick random 0 to 180 iz bloka Set y to, u blok Set x to. Zatim ćemo da promenimo 0 u -240, a potom i 180 u 240. Pored toga, moramo da promenimo i broj u bloku Set y to, na 180, jer želimo da se ovaj zombi pojavljuje pri vrhu ekrana, a ne bliže našem vojniku. Na ovaj način smo ostvarili svoju prvu nameru, da se srednji zombi pojavljuje na drugom mestu, u odnosu na velikog i malog zombija. Dok smo još u programu srednjeg zombija, kliknućemo na broj 10 u okviru bloka Glide 10 secs to x: 0 y:0, pa ćemo da ukucamo 8. Tako smo ubrzali kretanje ovog zombija, u odnosu na velikog zombija – sada mu je potrebno manje vremena da dođe do vojnika u sredini ekrana. Pokrenućemo i zaustaviti igru nekoliko puta, da bismo proverili da li sve radi onako kako očekujemo.

scratch-tutorijal-napad-clanak42d

Pošto se srednji zombi ponaša onako kako smo želeli, preći ćemo u program malog zombija. Kao i kod srednjeg zombija, prvo ćemo da pospremimo kôd, tako da blokovi ne budu nabacani jedni preko drugih. Kada to uradimo, promenićemo neka od njihovih podešavanja, slično kao kod srednjeg zombija. Prevlačimo blok Pick random 0 to 180 iz bloka Set y to, u blok Set x to, a onda menjamo 180 u 240. U blok Set y tounosimo -180. U bloku Glide 10 secs to x: 0 y:0, umesto broja 10 ukucavamo 4. Kao i kod programiranja srednjeg zombija, pokrenućemo igru nekoliko puta, da bismo videli gde će da se pojavljuje mail zombi, i kojom će brzinom da se kreće.

scratch-tutorijal-napad-clanak42e

Programiranje poena i vremena izlaska zombija

Pošto smo programirali najnužnije stvari u našoj igri, mogli bismo da stanemo, i da kažemo da je igra završena. Međutim, ovako kako je trenutno programirana, ne predstavlja neki veliki izazov za igrače – zombiji se uvek pojavljuju u jednakim vremenskim razmacima, a nemamo ni mogućnost praćenja uspešnosti igrača. Obe ove stvari rešavamo na sledeći način.

 

Prvo ćemo da napravimo blok kojim ćemo da merimo poene igrača – za svakog pogođenog zombija, igrači će dobijati po jedan poen. Prelazimo na sprajt metka, a zatim u grupu blokova Data. Kliknućemo na dugme Make a variable, i napraviti blok poeni. Prevući ćemo blokove Set poeni to 0 i Change poeni by 1 u prostor sa ostalim blokovima. Zatim prelazimo u grupu blokova Control, iz koje prevlačimo blok If <> then. Potom kopiramo veliki zeleni blok iz programa When I start as a clone. Pošto ćemo da dobijamo poene samo za zombije koje pogodimo, sklonićemo one blokove koji su nam nepotrebni (jedan blok Or, i blok Touching edge). Kliknite na sledeću sliku, kako biste videli uveličani prikaz.

scratch-tutorijal-napad-clanak42f

Način spajanja ovih blokova je prikazan na sledećoj slici (kliknite na sliku za uveličani prikaz).

scratch-tutorijal-napad-clanak42g

Dakle:
Na početku svake igre, poeni se resetuju na 0. Kad god metak pogodi nekog od zombija, dobićemo jedan poen.

 

Sada ćemo da napravimo novi blok, koji će da određuje vreme između dva izlaska zombija. Prelazimo u grupu blokova Data, i klikom na Make a variable, pravimo novi blok vreme, na isti način na koji smo napravili blok poeni. Prevlačimo sledeće blokove:

  • Grupa blokova Data
    • Set vreme to (3 bloka)
    • Poeni (5 blokova)
  • Grupa blokova Control:
    • If <> then (3 bloka)
  • Grupa blokova Operators:
    • > (3 bloka)
    • < (2 bloka)
    • And (2 bloka)
scratch-tutorijal-napad-clanak42h

Recimo da želimo da se vreme između izlazaka zombija skraćuje, u zavisnosti od toga koliko poena imamo. Ako imamo:

  • manje od 15 poena, zombiji će se pojavljivati na svake 4 sekunde
  • bar 15 poena, ali manje od 25, zombiji će se pojavljivati na svake 3 sekunde
  • bar 25 poena, ali manje od 30, zombiji će se pojavljivati na svake 2 sekunde
  • 30 i više poena, zombiji će se pojavljivati svake sekunde

 

Ove uslove programiramo kao na sledećoj slici.

scratch-tutorijal-napad-clanak42i

Ostalo je još da na početku svake igre resetujemo vreme izlaska zombija, ali i da povežemo blok vreme sa programima svakog pojedinačnog zombija. Resetovanje vršimo tako što u program vojnika dodamo blok Set vreme to 0, a zatim umesto 0 ukucamo 4.

scratch-tutorijal-napad-clanak42j

Vreme izlaska zombija menjamo tako što prelazimo u sprajt svakog od zombija, i prevlačimo blok vreme unutar bloka Wait 4 secs, preko broja 4. Tako smo programirali da vreme između dva izlaska bude broj koji može da se menja u toku igre.

scratch-tutorijal-napad-clanak42k

Ovim smo završili programiranje igre. :) Ako želite da sačuvate igru, i da je pokažete svojim drugaricama i drugovima, kliknite na File, pa naSave (ili Save As).